mirror of
https://github.com/reactos/reactos.git
synced 2024-10-21 00:18:26 +00:00
42 lines
859 B
C++
42 lines
859 B
C++
|
#include <memory>
|
||
|
|
||
|
#if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
|
||
|
|
||
|
// #include <typeinfo>
|
||
|
#include "cppunit/cppunit_proxy.h"
|
||
|
|
||
|
#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
|
||
|
using namespace std;
|
||
|
#endif
|
||
|
|
||
|
class SharedPtrTest :
|
||
|
public CPPUNIT_NS::TestCase
|
||
|
{
|
||
|
CPPUNIT_TEST_SUITE(SharedPtrTest);
|
||
|
CPPUNIT_TEST(shared_from_this);
|
||
|
CPPUNIT_TEST_SUITE_END();
|
||
|
|
||
|
protected:
|
||
|
void shared_from_this();
|
||
|
};
|
||
|
|
||
|
CPPUNIT_TEST_SUITE_REGISTRATION(SharedPtrTest);
|
||
|
|
||
|
struct X;
|
||
|
|
||
|
struct X :
|
||
|
public std::tr1::enable_shared_from_this<X>
|
||
|
{
|
||
|
};
|
||
|
|
||
|
void SharedPtrTest::shared_from_this()
|
||
|
{
|
||
|
std::tr1::shared_ptr<X> p( new X );
|
||
|
std::tr1::shared_ptr<X> q = p->shared_from_this();
|
||
|
|
||
|
CPPUNIT_CHECK( p == q );
|
||
|
CPPUNIT_CHECK( !(p < q) && !(q < p) ); // p and q share ownership
|
||
|
}
|
||
|
|
||
|
#endif /* !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT */
|