C++11 Передача this в качестве параметра для std::make_shared

Я пытаюсь передать 'this' конструктору, используя std::make_shared

Пример:

// headers
class A 
{
public:
   std::shared_ptr<B> createB();
}


class B 
{
private:
   std::shared_ptr<A> a;

public:
   B(std::shared_ptr<A>);
}


// source
std::shared_ptr<B> A::createB()
{
   auto b = std::make_shared<B>(this); // Compiler error (VS11 Beta)
   auto b = std::make_shared<B>(std::shared_ptr<A>(this)); // No compiler error, but doenst work
   return b;
}

Однако это не работает должным образом, любой предложения, как я могу правильно передать это как аргумент?

7
задан RdR 10 May 2012 в 12:40
поделиться