#include <iostream>
#include <memory>
template<typename T>
class Test: public std::enable_shared_from_this< Test<T> >
{
public:
std::shared_ptr< Test<T> > getMe()
{
return shared_from_this();
};
};
int main(int argc, const char * argv[])
{
Test<int> aTest;
return 0;
}
When i try to compile this on Xcode 5 i get
Use of undeclared identifier 'shared_from_this'
I tested it and its working on Visual Studio 2010.
return this->shared_from_this();
^^^^^^
VC++ 2010 does not implement the lookup rules for templated base classes exactly correctly. The clang behavior is correct. The above fix will make it work on both your platforms.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With