Paste will expire never.
- int des_count = 0;
- struct TestClass
- {
- TestClass(){}
- ~TestClass(){
- std::cout << "des_count: " << ++des_count << "\n";
- }
- };
- static void ConstructTestClass(TestClass *thisPointer)
- {
- new(thisPointer) TestClass();
- }
- static void CopyConstructTestClass(const TestClass &other, TestClass *thisPointer)
- {
- new(thisPointer) TestClass(other);
- }
- static void DestructTestClass(TestClass *thisPointer)
- {
- thisPointer->~TestClass();
- }
- r=en->RegisterObjectType( "TestLink", sizeof( TestClass ), asOBJ_VALUE | asOBJ_APP_CLASS_CDK ); assert( r >= 0 );
- r=en->RegisterObjectBehaviour("TestLink", asBEHAVE_CONSTRUCT, "void f()", asFUNCTION(ConstructTestClass), asCALL_CDECL_OBJLAST); assert( r >= 0 );
- r=en->RegisterObjectBehaviour("TestLink", asBEHAVE_CONSTRUCT, "void f(const TestLink &in)", asFUNCTION(CopyConstructTestClass), asCALL_CDECL_OBJLAST); assert( r >= 0 );
- r=en->RegisterObjectBehaviour("TestLink", asBEHAVE_DESTRUCT, "void f()", asFUNCTION(DestructTestClass), asCALL_CDECL_OBJLAST); assert( r >= 0 );
- //------------------------------------------------------------------------------------
- //------------------------------------------------------------------------------------
- //------------------------------------------------------------------------------------
- script:
- class Object3
- {
- Object3( TestLink str )
- {
- Object2 @null_object = null;
- null_object.Do();
- }
- void Do() {}
- }
- void Main()
- {
- Object3 @oo = Object3( TestLink() );
- }