diff --git a/CMakeLists.txt b/CMakeLists.txt index 41e21a5..d9131eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,7 @@ cm_example_project("DataType" SplitStringTest datatype/SplitStringTest.cpp cm_example_project("DataType" StrChrTest datatype/strchr_test.cpp) cm_example_project("DataType" Uint2StrTest datatype/utos_test.cpp) cm_example_project("DataType" Size2Test datatype/Size2Test.cpp) +cm_example_project("DataType" MemcmpTest datatype/MemcmpTest.cpp) cm_example_project("DataType" Uint2HexStrTest datatype/Uint2HexStrTest.cpp) cm_example_project("DataType" ConstStringSetTest datatype/ConstStringSetTest.cpp) diff --git a/datatype/MemcmpTest.cpp b/datatype/MemcmpTest.cpp new file mode 100644 index 0000000..f2823de --- /dev/null +++ b/datatype/MemcmpTest.cpp @@ -0,0 +1,13 @@ +#include +#include +#include + +int main(int,char **) +{ + char left []="1234567890"; + char right []="2345678901"; + + std::cout<<"memcmp: "< #include +#include class Object { diff --git a/datatype/typeinfo/ObjectRelationTest.cpp b/datatype/typeinfo/ObjectRelationTest.cpp index 2d1dbef..d94cebe 100644 --- a/datatype/typeinfo/ObjectRelationTest.cpp +++ b/datatype/typeinfo/ObjectRelationTest.cpp @@ -26,11 +26,11 @@ using namespace std; class BaseObject { - ObjectSimpleInfo object_simple_info; + ObjectBaseInfo object_simple_info; public: - BaseObject(const ObjectSimpleInfo &osi) + BaseObject(const ObjectBaseInfo &osi) { object_simple_info=osi; } @@ -39,9 +39,9 @@ public: CLASS_TYPE_HASH(BaseObject) - const ObjectSimpleInfo &GetObjectSimpleInfo()const{return object_simple_info;} + const ObjectBaseInfo &GetObjectBaseInfo()const{return object_simple_info;} const size_t GetTypeHash()const{return object_simple_info.hash_code;} - const size_t GetObjectSerial()const{return object_simple_info.serial_number;} + const size_t GetObjectSerial()const{return object_simple_info.unique_id;} virtual void Destory() { @@ -52,7 +52,7 @@ public: #define CLASS_BODY(class_type) private: \ static const size_t CreateObjectSerial(){static size_t serial=0;return ++serial;} \ public: \ - class_type():BaseObject(ObjectSimpleInfo(class_type::StaticTypeHash(),class_type::CreateObjectSerial())){} \ + class_type():BaseObject(ObjectBaseInfo(class_type::StaticTypeHash(),class_type::CreateObjectSerial())){} \ virtual ~class_type()=default; \ CLASS_TYPE_HASH(class_type) @@ -98,7 +98,7 @@ void test1() std::cout<<"TypeEqual(&to1,bo) result is "<<(result?"true":"false")<; +using ObjectSimpleInfoSet=tsl::robin_set; template class RefPtr; @@ -130,7 +130,7 @@ public: /** * 申请一个引用 */ - RefPtr Acquire(const ObjectSimpleInfo *osi,const SourceCodeLocation &scl); + RefPtr Acquire(const ObjectBaseInfo *osi,const SourceCodeLocation &scl); void Release(RefPtr *rp,const SourceCodeLocation &) { @@ -184,7 +184,7 @@ public: } }; -#define ACQUIRE_REF(ref_object,self) ref_object->Acquire(&self->GetObjectSimpleInfo(),HGL_SCL_HERE); +#define ACQUIRE_REF(ref_object,self) ref_object->Acquire(&self->GetObjectBaseInfo(),HGL_SCL_HERE); #define REF_PTR_RELEASE(obj) obj->Release(HGL_SCL_HERE); diff --git a/datatype/typeinfo/TypeInfoTest.cpp b/datatype/typeinfo/TypeInfoTest.cpp new file mode 100644 index 0000000..49d4837 --- /dev/null +++ b/datatype/typeinfo/TypeInfoTest.cpp @@ -0,0 +1,25 @@ +#include +#include + +using namespace hgl; + +class TestObject:public Object +{ +public: + + using Object::Object; + virtual ~TestObject()=default; +}; + +int main(int argc,char **) +{ + NewObject(TestObject,to); + + const auto &obi=to->GetObjectBaseInfo(); + + std::cout<<"file: "<