If class "Pool" inherits from enable_shared_from_this the documentation
says I'm able to do the following.
shared_ptr<Pool> aPool = shared_from_this();
The minimal code I've included shows that this isn't happening. The
code compiles but I get this error "tr1::bad_weak_ptr". What should I
be doing different?
Ryan
[CODE]
//C++ Includes
#include <exception>
#include <iostream>
#include <vector>
#include <algorithm>
//Boost Includes
#include
#include
class pool : public boost::enable_shared_from_this< pool > {
private:
using boost::enable_shared_from_this< pool >::shared_from_this;
public:
boost::shared_ptr<int> get(void) {
boost::shared_ptr<pool> aPool = shared_from_this(); //This is
where the tr1::bad_weak_ptr happens.
return boost::shared_ptr<int>(new int);
}
};
int main(int argc, char * argv[]) {
try {
pool * myPool = new pool;
boost::shared_ptr<int> a = myPool->get();
}
catch (std::exception & exception) {
std::cout << exception.what() << std::endl;
}
return 0;
}