List模板改名为ArrayList

This commit is contained in:
2025-04-23 00:24:10 +08:00
parent 25b5c60fe5
commit 5b09bec024
9 changed files with 37 additions and 45 deletions

View File

@@ -59,7 +59,7 @@ public:
template<typename T> inline const bool IsType(BaseObject *bo){return bo?(bo->GetTypeHash()==T::StaticTypeHash()):false;}
inline const bool TypeEqual(BaseObject *bo1,BaseObject *bo2)
inline const bool IsSameType(BaseObject *bo1,BaseObject *bo2)
{
if(!bo1||!bo2)return(false);
@@ -93,12 +93,12 @@ void test1()
std::cout<<"IsType<TestObject>(bo) result is "<<(result?"true":"false")<<std::endl;
result=TypeEqual(&to1,bo);
result=IsSameType(&to1,bo);
std::cout<<"TypeEqual(&to1,bo) result is "<<(result?"true":"false")<<std::endl;
std::cout<<"IsSameType(&to1,bo) result is "<<(result?"true":"false")<<std::endl;
}
using ObjectSimpleInfoSet=tsl::robin_set<ObjectBaseInfo>;
using ObjectBaseInfoSet=tsl::robin_set<ObjectBaseInfo>;
template<typename T> class RefPtr;
@@ -109,8 +109,8 @@ template<typename T> class RefObject
{
T *obj;
ObjectSimpleInfoSet ref_me_set; ///<引用我的对象
ObjectSimpleInfoSet me_ref_set; ///<我引用的对象
ObjectBaseInfoSet ref_me_set; ///<引用我的对象
ObjectBaseInfoSet me_ref_set; ///<我引用的对象
template<typename T> friend class RefPtr;

View File

@@ -1,48 +1,40 @@
#include<iostream>
#include<hgl/type/object/ObjectRelation.h>
#include<hgl/type/object/Object.h>
using namespace hgl;
using namespace std;
class Base
void out(const char *name,Object *obj)
{
ObjectBaseInfo obj_base_info; ///<对象基本信息
cout<<name<<" static "<<obj->GetTypeName()<<": "<<std::hex<<obj->GetTypeHash()<<endl;
}
ObjectRelation obj_relation; ///<对象引用关系
class TestObject:public Object
{
HGL_OBJECT_BODY(TestObject)
public:
const size_t GetTypeHash()const noexcept{return obj_base_info.hash_code;}
public:
HGL_OBJECT_CONSTRUCT(TestObject)
};
template<typename T> class Inherit:public T
class TestObjectA:public TestObject
{
size_t hash_code;
HGL_OBJECT_BODY(TestObjectA)
public:
Inherit()
{
hash_code=GetTypeHash<Inherit>();
}
const size_t GetClassTypeHash()const noexcept{return hash_code;}
};
class TestA:public Inherit<Base>
{
public:
HGL_OBJECT_CONSTRUCT_SC(TestObjectA,TestObject)
};
int main()
int main(int,char **)
{
TestA test;
TestObject *to=NewObject(TestObject);
TestObjectA *toa=NewObject(TestObjectA);
std::cout<<"Base1: "<<base1.StaticTypeHash()<<std::endl;
std::cout<<"Base2: "<<base2.StaticTypeHash()<<std::endl;
out("to",to);
out("toa",toa);
return 0;
}
}