Попробуйте это:
...
<span ng-bind-html="'FORM.TRANSLATION_TOKEN_' +$index | translate"></span>
...
Это позволяет Вам получить допустимое shared_ptr
экземпляр к this
, когда все, что Вы имеете, this
. Без него у Вас не было бы способа получить a shared_ptr
кому: this
, если у Вас уже не было того как у участника. Этот пример из документации повышения для enable_shared_from_this:
class Y: public enable_shared_from_this<Y>
{
public:
shared_ptr<Y> f()
{
return shared_from_this();
}
}
int main()
{
shared_ptr<Y> p(new Y);
shared_ptr<Y> q = p->f();
assert(p == q);
assert(!(p < q || q < p)); // p and q must share ownership
}
Метод f()
возвращает допустимое shared_ptr
, даже при том, что это не имело никакого членского экземпляра. Обратите внимание, что Вы не можете просто сделать этого:
class Y: public enable_shared_from_this<Y>
{
public:
shared_ptr<Y> f()
{
return shared_ptr<Y>(this);
}
}
Общий указатель, который это возвратило, будет иметь другой подсчет ссылок от "надлежащего", и один из них закончит тем, что терял и содержал повисшую ссылку, когда объект будет удален.
enable_shared_from_this
стал частью C++ 11 стандартов. Можно также получить его оттуда, а также от повышения.