Loading TemplateTest/main.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -273,8 +273,8 @@ public: const Traits<tempData>::ttype Traits<tempData>::tr("density", &tempData::density, "momentum"s, std::make_pair(&tempData::getMomentum, &tempData::setMomentum)); */ //MAKE_NAMED_ATRIBUTE_TRAIT(tempData, "density", density, "velocity", velocity); //MAKE_ATRIBUTE_TRAIT(tempData, density, velocity); //MAKE_NAMED_ATTRIBUTE_TRAIT(tempData, "density", density, "velocity", velocity); //MAKE_ATTRIBUTE_TRAIT(tempData, density, velocity); MAKE_CUSTOM_ATTRIBUTE_TRAIT(tempData, "density", &tempData::density, "momentum", std::make_pair(&tempData::getMomentum, &tempData::setMomentum)) Loading @@ -286,7 +286,7 @@ struct ExportTest { std::vector<std::string> attrVec = {"tohle", "je", "nejlepsi", "debugovaci", "system"}; tempData attrTempData{42.15, {1,2,1}}; }; MAKE_ATRIBUTE_TRAIT(ExportTest, attrInt, attrDouble, attrChar, attrStr, attrVec, attrTempData); MAKE_ATTRIBUTE_TRAIT(ExportTest, attrInt, attrDouble, attrChar, attrStr, attrVec, attrTempData); void testMemberRef(){ Loading Unstructured_mesh/UnstructuredMesh/MeshDataContainer/Traits.h +8 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ class Traits { friend class Singleton<MemRefs<1, void>>; std::unique_ptr<MemberApproach<Class, type<Index>>> ref = nullptr; std::string name; // private: MemRefs(){} }; Loading @@ -25,7 +25,7 @@ class Traits { friend class Singleton<MemRefs<0, void>>; std::unique_ptr<MemberApproach<Class, type<0>>> ref = nullptr; std::string name; //private: MemRefs(){} }; Loading @@ -40,14 +40,14 @@ class Traits { template<unsigned int Pos, typename ref> static void _makeReferences(const std::string& name, ref member) { refs::getInstance().MemRefs<Pos, void>::name = name; getReference<Pos>() = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); refs::getInstance().MemRefs<Pos, void>::ref = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); } template<unsigned int Pos, typename ref> static void _makeReferences(const char* name, ref member) { refs::getInstance().MemRefs<Pos, void>::name = name; getReference<Pos>() = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); refs::getInstance().MemRefs<Pos, void>::ref = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); } Loading @@ -61,12 +61,12 @@ public: template<unsigned int Index> static std::unique_ptr<MemberApproach<Class, type<Index>>>& getReference(){ static const std::unique_ptr<MemberApproach<Class, type<Index>>>& getReference(){ return refs::getInstance().MemRefs<Index, void>::ref; } template<unsigned int Index> static std::string& getName(){ static const std::string& getName(){ return refs::getInstance().MemRefs<Index, void>::name; } Loading Loading @@ -113,10 +113,10 @@ const Traits<Class>::ttype Traits<Class>::tr(__VA_ARGS__); \ #define NAME_AND_REF(Class, name, member) name, &Class::member #define MAKE_NAMED_ATRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_ATTRIBUTE_TRAIT(Class, FOR_EACH_3ARGS_1STAT(NAME_AND_REF, Class, __VA_ARGS__)) #define MAKE_NAMED_ATTRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_ATTRIBUTE_TRAIT(Class, FOR_EACH_3ARGS_1STAT(NAME_AND_REF, Class, __VA_ARGS__)) #define NAME_ATT(attribute) #attribute, attribute #define MAKE_ATRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATRIBUTE_TRAIT(Class, FOR_EACH(NAME_ATT, __VA_ARGS__)) #define MAKE_ATTRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATTRIBUTE_TRAIT(Class, FOR_EACH(NAME_ATT, __VA_ARGS__)) Loading Loading
TemplateTest/main.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -273,8 +273,8 @@ public: const Traits<tempData>::ttype Traits<tempData>::tr("density", &tempData::density, "momentum"s, std::make_pair(&tempData::getMomentum, &tempData::setMomentum)); */ //MAKE_NAMED_ATRIBUTE_TRAIT(tempData, "density", density, "velocity", velocity); //MAKE_ATRIBUTE_TRAIT(tempData, density, velocity); //MAKE_NAMED_ATTRIBUTE_TRAIT(tempData, "density", density, "velocity", velocity); //MAKE_ATTRIBUTE_TRAIT(tempData, density, velocity); MAKE_CUSTOM_ATTRIBUTE_TRAIT(tempData, "density", &tempData::density, "momentum", std::make_pair(&tempData::getMomentum, &tempData::setMomentum)) Loading @@ -286,7 +286,7 @@ struct ExportTest { std::vector<std::string> attrVec = {"tohle", "je", "nejlepsi", "debugovaci", "system"}; tempData attrTempData{42.15, {1,2,1}}; }; MAKE_ATRIBUTE_TRAIT(ExportTest, attrInt, attrDouble, attrChar, attrStr, attrVec, attrTempData); MAKE_ATTRIBUTE_TRAIT(ExportTest, attrInt, attrDouble, attrChar, attrStr, attrVec, attrTempData); void testMemberRef(){ Loading
Unstructured_mesh/UnstructuredMesh/MeshDataContainer/Traits.h +8 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ class Traits { friend class Singleton<MemRefs<1, void>>; std::unique_ptr<MemberApproach<Class, type<Index>>> ref = nullptr; std::string name; // private: MemRefs(){} }; Loading @@ -25,7 +25,7 @@ class Traits { friend class Singleton<MemRefs<0, void>>; std::unique_ptr<MemberApproach<Class, type<0>>> ref = nullptr; std::string name; //private: MemRefs(){} }; Loading @@ -40,14 +40,14 @@ class Traits { template<unsigned int Pos, typename ref> static void _makeReferences(const std::string& name, ref member) { refs::getInstance().MemRefs<Pos, void>::name = name; getReference<Pos>() = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); refs::getInstance().MemRefs<Pos, void>::ref = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); } template<unsigned int Pos, typename ref> static void _makeReferences(const char* name, ref member) { refs::getInstance().MemRefs<Pos, void>::name = name; getReference<Pos>() = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); refs::getInstance().MemRefs<Pos, void>::ref = std::unique_ptr<MemberApproach<Class, type<Pos>>>(new MemberReference<Class, type<Pos>, decltype(member)>(member)); } Loading @@ -61,12 +61,12 @@ public: template<unsigned int Index> static std::unique_ptr<MemberApproach<Class, type<Index>>>& getReference(){ static const std::unique_ptr<MemberApproach<Class, type<Index>>>& getReference(){ return refs::getInstance().MemRefs<Index, void>::ref; } template<unsigned int Index> static std::string& getName(){ static const std::string& getName(){ return refs::getInstance().MemRefs<Index, void>::name; } Loading Loading @@ -113,10 +113,10 @@ const Traits<Class>::ttype Traits<Class>::tr(__VA_ARGS__); \ #define NAME_AND_REF(Class, name, member) name, &Class::member #define MAKE_NAMED_ATRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_ATTRIBUTE_TRAIT(Class, FOR_EACH_3ARGS_1STAT(NAME_AND_REF, Class, __VA_ARGS__)) #define MAKE_NAMED_ATTRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_ATTRIBUTE_TRAIT(Class, FOR_EACH_3ARGS_1STAT(NAME_AND_REF, Class, __VA_ARGS__)) #define NAME_ATT(attribute) #attribute, attribute #define MAKE_ATRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATRIBUTE_TRAIT(Class, FOR_EACH(NAME_ATT, __VA_ARGS__)) #define MAKE_ATTRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATTRIBUTE_TRAIT(Class, FOR_EACH(NAME_ATT, __VA_ARGS__)) Loading