Loading TemplateTest/main.cpp +5 −0 Original line number Diff line number Diff line #include "../debug/Debug.h" #include "../Unstructured_mesh/UnstructuredMesh/UnstructuredMesh.h" #include "../Unstructured_mesh/UnstructuredMesh/MeshDataContainer/MemberApproach.h" #include <functional> #include <type_traits> #include <iostream> #include <list> Loading Loading @@ -359,5 +360,9 @@ int main() DBGVAR(b2.first,b2.second); testMemberRef(); std::function<int(int)> fce = [&b1](int i){return b1.data + 42 + i;}; std::cout << fce(2); return 0; } Unstructured_mesh/UnstructuredMesh/MeshDataContainer/MemberApproach.h +14 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,20 @@ #include <type_traits> #include <utility> template<typename Class, typename MA> class MemberApproachBase{ auto getValue(Class* c){ return static_cast<MA*>(this)->getValue(c); } template<typename ValueType> void setValue(Class* c, const ValueType& val) { static_cast<MA*>(this)->setValue(c, val); } }; template <typename Class, typename ValueType> class MemberApproach{ public: Loading Unstructured_mesh/Unstructured_mesh.pro.user +1 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE QtCreatorProject> <!-- Written by QtCreator 4.10.0, 2019-10-22T14:43:15. --> <!-- Written by QtCreator 4.10.0, 2019-10-23T11:26:05. --> <qtcreator> <data> <variable>EnvironmentId</variable> Loading Loading
TemplateTest/main.cpp +5 −0 Original line number Diff line number Diff line #include "../debug/Debug.h" #include "../Unstructured_mesh/UnstructuredMesh/UnstructuredMesh.h" #include "../Unstructured_mesh/UnstructuredMesh/MeshDataContainer/MemberApproach.h" #include <functional> #include <type_traits> #include <iostream> #include <list> Loading Loading @@ -359,5 +360,9 @@ int main() DBGVAR(b2.first,b2.second); testMemberRef(); std::function<int(int)> fce = [&b1](int i){return b1.data + 42 + i;}; std::cout << fce(2); return 0; }
Unstructured_mesh/UnstructuredMesh/MeshDataContainer/MemberApproach.h +14 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,20 @@ #include <type_traits> #include <utility> template<typename Class, typename MA> class MemberApproachBase{ auto getValue(Class* c){ return static_cast<MA*>(this)->getValue(c); } template<typename ValueType> void setValue(Class* c, const ValueType& val) { static_cast<MA*>(this)->setValue(c, val); } }; template <typename Class, typename ValueType> class MemberApproach{ public: Loading
Unstructured_mesh/Unstructured_mesh.pro.user +1 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE QtCreatorProject> <!-- Written by QtCreator 4.10.0, 2019-10-22T14:43:15. --> <!-- Written by QtCreator 4.10.0, 2019-10-23T11:26:05. --> <qtcreator> <data> <variable>EnvironmentId</variable> Loading