Commits

Don Williamson  committed 64caa62

Change clcppcodegen.cpp to lowercase and ensure CMake build matches PiB build, for Linux.

  • Participants
  • Parent commits 222af64

Comments (0)

Files changed (3)

File src/clReflectTest/CMakeLists.txt

   TestSerialiseJSON.cpp
   TestTemplates.cpp
   TestTypedefs.cpp
-  clcppCodeGen.cpp
+  clcppcodegen.cpp
   )
 
 add_clreflect_executable(clReflectTest ${CL_REFLECT_TEST_SOURCES})

File src/clReflectTest/clReflectTest.pibfile

 
 cltest = CppBuild(env, [ "." ], "cltest.exe", libs, build = False)
 
-cpp_codegen = "clcppCodeGen.cpp"
+cpp_codegen = "clcppcodegen.cpp"
 
 # Generate the list of C++ files to scan - this excludes the generated C++ file
 # Only add the generated C++ file to the compilation list if it's not already there
-scan_cpp_files = [ i for i in cltest.cpp_files if not i.lower().endswith(cpp_codegen.lower()) ]
+scan_cpp_files = [ i for i in cltest.cpp_files if not i.lower().endswith(cpp_codegen) ]
 if len(scan_cpp_files) == len(cltest.cpp_files):
 	cltest.obj_files += [ env.CPPFile(cpp_codegen) ]
 

File src/clReflectTest/clcppcodegen.cpp

-// 1fea9f9b
+// 6ba0b80d
 // Generated by clmerge.exe - do not edit!
 #include <clcpp/clcpp.h>
 
 // Specialisations for GetType and GetTypeNameHash
 namespace clcpp
 {
-	template <> const Type* GetType<Offsets::A>() { return clcppTypePtrs[0]; }
-	template <> unsigned int GetTypeNameHash<Offsets::A>() { return clcppTypeNameHashes[0]; }
-	template <> const Type* GetType<TestMissingType::Struct>() { return clcppTypePtrs[1]; }
-	template <> unsigned int GetTypeNameHash<TestMissingType::Struct>() { return clcppTypeNameHashes[1]; }
-	template <> const Type* GetType<jsontest::BaseStruct>() { return clcppTypePtrs[2]; }
-	template <> unsigned int GetTypeNameHash<jsontest::BaseStruct>() { return clcppTypeNameHashes[2]; }
-	template <> const Type* GetType<Offsets::DerivedPolymorphicStruct>() { return clcppTypePtrs[3]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DerivedPolymorphicStruct>() { return clcppTypeNameHashes[3]; }
-	template <> const Type* GetType<TestTemplates::ParamClass>() { return clcppTypePtrs[4]; }
-	template <> unsigned int GetTypeNameHash<TestTemplates::ParamClass>() { return clcppTypeNameHashes[4]; }
-	template <> const Type* GetType<TestClassImpl::A>() { return clcppTypePtrs[5]; }
-	template <> unsigned int GetTypeNameHash<TestClassImpl::A>() { return clcppTypeNameHashes[5]; }
-	template <> const Type* GetType<Offsets::C>() { return clcppTypePtrs[6]; }
-	template <> unsigned int GetTypeNameHash<Offsets::C>() { return clcppTypeNameHashes[6]; }
-	template <> const Type* GetType<Funcs::DoubleStruct>() { return clcppTypePtrs[7]; }
-	template <> unsigned int GetTypeNameHash<Funcs::DoubleStruct>() { return clcppTypeNameHashes[7]; }
-	template <> const Type* GetType<ClassA>() { return clcppTypePtrs[8]; }
-	template <> unsigned int GetTypeNameHash<ClassA>() { return clcppTypeNameHashes[8]; }
-	template <> const Type* GetType<TestTypedefs::Fields>() { return clcppTypePtrs[9]; }
-	template <> unsigned int GetTypeNameHash<TestTypedefs::Fields>() { return clcppTypeNameHashes[9]; }
-	template <> const Type* GetType<Offsets::DoubleInPolymorphincStructWithPODBase>() { return clcppTypePtrs[10]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DoubleInPolymorphincStructWithPODBase>() { return clcppTypeNameHashes[10]; }
-	template <> const Type* GetType<Offsets::B>() { return clcppTypePtrs[11]; }
-	template <> unsigned int GetTypeNameHash<Offsets::B>() { return clcppTypeNameHashes[11]; }
-	template <> const Type* GetType<TestCollections::Struct>() { return clcppTypePtrs[12]; }
-	template <> unsigned int GetTypeNameHash<TestCollections::Struct>() { return clcppTypeNameHashes[12]; }
-	template <> const Type* GetType<NamespaceF::ClassA>() { return clcppTypePtrs[13]; }
-	template <> unsigned int GetTypeNameHash<NamespaceF::ClassA>() { return clcppTypeNameHashes[13]; }
-	template <> const Type* GetType<NamespaceF::NamespaceA::ShouldReflect>() { return clcppTypePtrs[14]; }
-	template <> unsigned int GetTypeNameHash<NamespaceF::NamespaceA::ShouldReflect>() { return clcppTypeNameHashes[14]; }
-	template <> const Type* GetType<Funcs::CharStruct>() { return clcppTypePtrs[15]; }
-	template <> unsigned int GetTypeNameHash<Funcs::CharStruct>() { return clcppTypeNameHashes[15]; }
-	template <> const Type* GetType<TestTypedefs::AliasedType>() { return clcppTypePtrs[16]; }
-	template <> unsigned int GetTypeNameHash<TestTypedefs::AliasedType>() { return clcppTypeNameHashes[16]; }
-	template <> const Type* GetType<Offsets::DoubleStructInPolymorphicStruct>() { return clcppTypePtrs[17]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DoubleStructInPolymorphicStruct>() { return clcppTypeNameHashes[17]; }
-	template <> const Type* GetType<NamespaceA::NamedNSClassB>() { return clcppTypePtrs[18]; }
-	template <> unsigned int GetTypeNameHash<NamespaceA::NamedNSClassB>() { return clcppTypeNameHashes[18]; }
-	template <> const Type* GetType<clcpp::IWriteIterator>() { return clcppTypePtrs[19]; }
-	template <> unsigned int GetTypeNameHash<clcpp::IWriteIterator>() { return clcppTypeNameHashes[19]; }
-	template <> const Type* GetType<Funcs::Container>() { return clcppTypePtrs[20]; }
-	template <> unsigned int GetTypeNameHash<Funcs::Container>() { return clcppTypeNameHashes[20]; }
-	template <> const Type* GetType<Offsets::PODBase>() { return clcppTypePtrs[21]; }
-	template <> unsigned int GetTypeNameHash<Offsets::PODBase>() { return clcppTypeNameHashes[21]; }
-	template <> const Type* GetType<jsontest::NestedStruct>() { return clcppTypePtrs[22]; }
-	template <> unsigned int GetTypeNameHash<jsontest::NestedStruct>() { return clcppTypeNameHashes[22]; }
-	template <> const Type* GetType<Funcs::BigStruct>() { return clcppTypePtrs[23]; }
-	template <> unsigned int GetTypeNameHash<Funcs::BigStruct>() { return clcppTypeNameHashes[23]; }
-	template <> const Type* GetType<Offsets::DerivedPolymorphicWithPODBase>() { return clcppTypePtrs[24]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DerivedPolymorphicWithPODBase>() { return clcppTypeNameHashes[24]; }
-	template <> const Type* GetType<NamespaceB::AnotherSecondNamedNSClass>() { return clcppTypePtrs[25]; }
-	template <> unsigned int GetTypeNameHash<NamespaceB::AnotherSecondNamedNSClass>() { return clcppTypeNameHashes[25]; }
-	template <> const Type* GetType<NamespaceB::SecondNamedNSClass>() { return clcppTypePtrs[26]; }
-	template <> unsigned int GetTypeNameHash<NamespaceB::SecondNamedNSClass>() { return clcppTypeNameHashes[26]; }
-	template <> const Type* GetType<Offsets::Int64InPolymorphicStruct>() { return clcppTypePtrs[27]; }
-	template <> unsigned int GetTypeNameHash<Offsets::Int64InPolymorphicStruct>() { return clcppTypeNameHashes[27]; }
-	template <> const Type* GetType<TestClassImpl::B>() { return clcppTypePtrs[28]; }
-	template <> unsigned int GetTypeNameHash<TestClassImpl::B>() { return clcppTypeNameHashes[28]; }
-	template <> const Type* GetType<TestTemplates::ParamStruct>() { return clcppTypePtrs[29]; }
-	template <> unsigned int GetTypeNameHash<TestTemplates::ParamStruct>() { return clcppTypeNameHashes[29]; }
-	template <> const Type* GetType<Stuff::NestedStruct>() { return clcppTypePtrs[30]; }
-	template <> unsigned int GetTypeNameHash<Stuff::NestedStruct>() { return clcppTypeNameHashes[30]; }
-	template <> const Type* GetType<Inheritance::DerivedClass>() { return clcppTypePtrs[31]; }
-	template <> unsigned int GetTypeNameHash<Inheritance::DerivedClass>() { return clcppTypeNameHashes[31]; }
-	template <> const Type* GetType<OuterNamespace::InnerNamespace::OuterClass>() { return clcppTypePtrs[32]; }
-	template <> unsigned int GetTypeNameHash<OuterNamespace::InnerNamespace::OuterClass>() { return clcppTypeNameHashes[32]; }
-	template <> const Type* GetType<StructGlobalA>() { return clcppTypePtrs[33]; }
-	template <> unsigned int GetTypeNameHash<StructGlobalA>() { return clcppTypeNameHashes[33]; }
-	template <> const Type* GetType<Funcs::ThreeStruct>() { return clcppTypePtrs[34]; }
-	template <> unsigned int GetTypeNameHash<Funcs::ThreeStruct>() { return clcppTypeNameHashes[34]; }
-	template <> const Type* GetType<Offsets::K>() { return clcppTypePtrs[35]; }
-	template <> unsigned int GetTypeNameHash<Offsets::K>() { return clcppTypeNameHashes[35]; }
-	template <> const Type* GetType<TestAttributes::ClassAttr>() { return clcppTypePtrs[36]; }
-	template <> unsigned int GetTypeNameHash<TestAttributes::ClassAttr>() { return clcppTypeNameHashes[36]; }
-	template <> const Type* GetType<Offsets::PolymorphicStruct>() { return clcppTypePtrs[37]; }
-	template <> unsigned int GetTypeNameHash<Offsets::PolymorphicStruct>() { return clcppTypeNameHashes[37]; }
-	template <> const Type* GetType<TestArrays::S>() { return clcppTypePtrs[38]; }
-	template <> unsigned int GetTypeNameHash<TestArrays::S>() { return clcppTypeNameHashes[38]; }
-	template <> const Type* GetType<TestAttributes::StructAttr>() { return clcppTypePtrs[39]; }
-	template <> unsigned int GetTypeNameHash<TestAttributes::StructAttr>() { return clcppTypeNameHashes[39]; }
-	template <> const Type* GetType<Inheritance::ErrorClass>() { return clcppTypePtrs[40]; }
-	template <> unsigned int GetTypeNameHash<Inheritance::ErrorClass>() { return clcppTypeNameHashes[40]; }
-	template <> const Type* GetType<Inheritance::BaseClass>() { return clcppTypePtrs[41]; }
-	template <> unsigned int GetTypeNameHash<Inheritance::BaseClass>() { return clcppTypeNameHashes[41]; }
-	template <> const Type* GetType<Offsets::H>() { return clcppTypePtrs[42]; }
-	template <> unsigned int GetTypeNameHash<Offsets::H>() { return clcppTypeNameHashes[42]; }
-	template <> const Type* GetType<Offsets::DoubleStruct>() { return clcppTypePtrs[43]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DoubleStruct>() { return clcppTypeNameHashes[43]; }
-	template <> const Type* GetType<FieldTypes>() { return clcppTypePtrs[44]; }
-	template <> unsigned int GetTypeNameHash<FieldTypes>() { return clcppTypeNameHashes[44]; }
-	template <> const Type* GetType<Funcs::OddStruct>() { return clcppTypePtrs[45]; }
-	template <> unsigned int GetTypeNameHash<Funcs::OddStruct>() { return clcppTypeNameHashes[45]; }
-	template <> const Type* GetType<Stuff::BaseStruct>() { return clcppTypePtrs[46]; }
-	template <> unsigned int GetTypeNameHash<Stuff::BaseStruct>() { return clcppTypeNameHashes[46]; }
-	template <> const Type* GetType<TestMissingType::Inherit>() { return clcppTypePtrs[47]; }
-	template <> unsigned int GetTypeNameHash<TestMissingType::Inherit>() { return clcppTypeNameHashes[47]; }
-	template <> const Type* GetType<Offsets::I>() { return clcppTypePtrs[48]; }
-	template <> unsigned int GetTypeNameHash<Offsets::I>() { return clcppTypeNameHashes[48]; }
-	template <> const Type* GetType<ClassGlobalA>() { return clcppTypePtrs[49]; }
-	template <> unsigned int GetTypeNameHash<ClassGlobalA>() { return clcppTypeNameHashes[49]; }
-	template <> const Type* GetType<Offsets::J>() { return clcppTypePtrs[50]; }
-	template <> unsigned int GetTypeNameHash<Offsets::J>() { return clcppTypeNameHashes[50]; }
-	template <> const Type* GetType<Offsets::E>() { return clcppTypePtrs[51]; }
-	template <> unsigned int GetTypeNameHash<Offsets::E>() { return clcppTypeNameHashes[51]; }
-	template <> const Type* GetType<Funcs::EmptyStruct>() { return clcppTypePtrs[52]; }
-	template <> unsigned int GetTypeNameHash<Funcs::EmptyStruct>() { return clcppTypeNameHashes[52]; }
-	template <> const Type* GetType<clcpp::IReadIterator>() { return clcppTypePtrs[53]; }
-	template <> unsigned int GetTypeNameHash<clcpp::IReadIterator>() { return clcppTypeNameHashes[53]; }
-	template <> const Type* GetType<Inheritance::MultipleInheritanceClass>() { return clcppTypePtrs[54]; }
-	template <> unsigned int GetTypeNameHash<Inheritance::MultipleInheritanceClass>() { return clcppTypeNameHashes[54]; }
-	template <> const Type* GetType<NamespaceA::NamedNSClassA>() { return clcppTypePtrs[55]; }
-	template <> unsigned int GetTypeNameHash<NamespaceA::NamedNSClassA>() { return clcppTypeNameHashes[55]; }
-	template <> const Type* GetType<Offsets::VirtualInheritanceBase>() { return clcppTypePtrs[56]; }
-	template <> unsigned int GetTypeNameHash<Offsets::VirtualInheritanceBase>() { return clcppTypeNameHashes[56]; }
-	template <> const Type* GetType<Stuff::DerivedStruct>() { return clcppTypePtrs[57]; }
-	template <> unsigned int GetTypeNameHash<Stuff::DerivedStruct>() { return clcppTypeNameHashes[57]; }
-	template <> const Type* GetType<jsontest::AllFields>() { return clcppTypePtrs[58]; }
-	template <> unsigned int GetTypeNameHash<jsontest::AllFields>() { return clcppTypeNameHashes[58]; }
-	template <> const Type* GetType<Offsets::DoubleInPolymorphicStruct>() { return clcppTypePtrs[59]; }
-	template <> unsigned int GetTypeNameHash<Offsets::DoubleInPolymorphicStruct>() { return clcppTypeNameHashes[59]; }
-	template <> const Type* GetType<NamespaceA::ShouldReflect>() { return clcppTypePtrs[60]; }
-	template <> unsigned int GetTypeNameHash<NamespaceA::ShouldReflect>() { return clcppTypeNameHashes[60]; }
-	template <> const Type* GetType<Offsets::D>() { return clcppTypePtrs[61]; }
-	template <> unsigned int GetTypeNameHash<Offsets::D>() { return clcppTypeNameHashes[61]; }
-	template <> const Type* GetType<Blah2>() { return clcppTypePtrs[62]; }
-	template <> unsigned int GetTypeNameHash<Blah2>() { return clcppTypeNameHashes[62]; }
-	template <> const Type* GetType<TestTypedefs::Container>() { return clcppTypePtrs[63]; }
-	template <> unsigned int GetTypeNameHash<TestTypedefs::Container>() { return clcppTypeNameHashes[63]; }
-	template <> const Type* GetType<Offsets::VirtualInheritancePolymorphicBase>() { return clcppTypePtrs[64]; }
-	template <> unsigned int GetTypeNameHash<Offsets::VirtualInheritancePolymorphicBase>() { return clcppTypeNameHashes[64]; }
-	template <> const Type* GetType<Offsets::F>() { return clcppTypePtrs[65]; }
-	template <> unsigned int GetTypeNameHash<Offsets::F>() { return clcppTypeNameHashes[65]; }
-	template <> const Type* GetType<TestTemplates::Fields>() { return clcppTypePtrs[66]; }
-	template <> unsigned int GetTypeNameHash<TestTemplates::Fields>() { return clcppTypeNameHashes[66]; }
-	template <> const Type* GetType<void>() { return clcppTypePtrs[81]; }
-	template <> unsigned int GetTypeNameHash<void>() { return clcppTypeNameHashes[81]; }
-	template <> const Type* GetType<unsigned long>() { return clcppTypePtrs[82]; }
-	template <> unsigned int GetTypeNameHash<unsigned long>() { return clcppTypeNameHashes[82]; }
-	template <> const Type* GetType<wchar_t>() { return clcppTypePtrs[83]; }
-	template <> unsigned int GetTypeNameHash<wchar_t>() { return clcppTypeNameHashes[83]; }
-	template <> const Type* GetType<short>() { return clcppTypePtrs[84]; }
-	template <> unsigned int GetTypeNameHash<short>() { return clcppTypeNameHashes[84]; }
-	template <> const Type* GetType<long>() { return clcppTypePtrs[85]; }
-	template <> unsigned int GetTypeNameHash<long>() { return clcppTypeNameHashes[85]; }
-	template <> const Type* GetType<unsigned char>() { return clcppTypePtrs[86]; }
-	template <> unsigned int GetTypeNameHash<unsigned char>() { return clcppTypeNameHashes[86]; }
-	template <> const Type* GetType<long long>() { return clcppTypePtrs[87]; }
-	template <> unsigned int GetTypeNameHash<long long>() { return clcppTypeNameHashes[87]; }
-	template <> const Type* GetType<double>() { return clcppTypePtrs[88]; }
-	template <> unsigned int GetTypeNameHash<double>() { return clcppTypeNameHashes[88]; }
-	template <> const Type* GetType<bool>() { return clcppTypePtrs[89]; }
-	template <> unsigned int GetTypeNameHash<bool>() { return clcppTypeNameHashes[89]; }
-	template <> const Type* GetType<unsigned short>() { return clcppTypePtrs[90]; }
-	template <> unsigned int GetTypeNameHash<unsigned short>() { return clcppTypeNameHashes[90]; }
-	template <> const Type* GetType<unsigned int>() { return clcppTypePtrs[91]; }
-	template <> unsigned int GetTypeNameHash<unsigned int>() { return clcppTypeNameHashes[91]; }
-	template <> const Type* GetType<float>() { return clcppTypePtrs[92]; }
-	template <> unsigned int GetTypeNameHash<float>() { return clcppTypeNameHashes[92]; }
-	template <> const Type* GetType<char>() { return clcppTypePtrs[93]; }
-	template <> unsigned int GetTypeNameHash<char>() { return clcppTypeNameHashes[93]; }
-	template <> const Type* GetType<unsigned long long>() { return clcppTypePtrs[94]; }
-	template <> unsigned int GetTypeNameHash<unsigned long long>() { return clcppTypeNameHashes[94]; }
-	template <> const Type* GetType<int>() { return clcppTypePtrs[95]; }
-	template <> unsigned int GetTypeNameHash<int>() { return clcppTypeNameHashes[95]; }
+	template <> const Type* GetType< Offsets::A >() { return clcppTypePtrs[0]; }
+	template <> unsigned int GetTypeNameHash< Offsets::A >() { return clcppTypeNameHashes[0]; }
+	template <> const Type* GetType< TestMissingType::Struct >() { return clcppTypePtrs[1]; }
+	template <> unsigned int GetTypeNameHash< TestMissingType::Struct >() { return clcppTypeNameHashes[1]; }
+	template <> const Type* GetType< jsontest::BaseStruct >() { return clcppTypePtrs[2]; }
+	template <> unsigned int GetTypeNameHash< jsontest::BaseStruct >() { return clcppTypeNameHashes[2]; }
+	template <> const Type* GetType< Offsets::DerivedPolymorphicStruct >() { return clcppTypePtrs[3]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DerivedPolymorphicStruct >() { return clcppTypeNameHashes[3]; }
+	template <> const Type* GetType< TestTemplates::ParamClass >() { return clcppTypePtrs[4]; }
+	template <> unsigned int GetTypeNameHash< TestTemplates::ParamClass >() { return clcppTypeNameHashes[4]; }
+	template <> const Type* GetType< TestClassImpl::A >() { return clcppTypePtrs[5]; }
+	template <> unsigned int GetTypeNameHash< TestClassImpl::A >() { return clcppTypeNameHashes[5]; }
+	template <> const Type* GetType< Offsets::C >() { return clcppTypePtrs[6]; }
+	template <> unsigned int GetTypeNameHash< Offsets::C >() { return clcppTypeNameHashes[6]; }
+	template <> const Type* GetType< Funcs::DoubleStruct >() { return clcppTypePtrs[7]; }
+	template <> unsigned int GetTypeNameHash< Funcs::DoubleStruct >() { return clcppTypeNameHashes[7]; }
+	template <> const Type* GetType< ::ClassA >() { return clcppTypePtrs[8]; }
+	template <> unsigned int GetTypeNameHash< ::ClassA >() { return clcppTypeNameHashes[8]; }
+	template <> const Type* GetType< TestTypedefs::Fields >() { return clcppTypePtrs[9]; }
+	template <> unsigned int GetTypeNameHash< TestTypedefs::Fields >() { return clcppTypeNameHashes[9]; }
+	template <> const Type* GetType< Offsets::DoubleInPolymorphincStructWithPODBase >() { return clcppTypePtrs[10]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DoubleInPolymorphincStructWithPODBase >() { return clcppTypeNameHashes[10]; }
+	template <> const Type* GetType< Offsets::B >() { return clcppTypePtrs[11]; }
+	template <> unsigned int GetTypeNameHash< Offsets::B >() { return clcppTypeNameHashes[11]; }
+	template <> const Type* GetType< TestCollections::Struct >() { return clcppTypePtrs[12]; }
+	template <> unsigned int GetTypeNameHash< TestCollections::Struct >() { return clcppTypeNameHashes[12]; }
+	template <> const Type* GetType< NamespaceF::ClassA >() { return clcppTypePtrs[13]; }
+	template <> unsigned int GetTypeNameHash< NamespaceF::ClassA >() { return clcppTypeNameHashes[13]; }
+	template <> const Type* GetType< NamespaceF::NamespaceA::ShouldReflect >() { return clcppTypePtrs[14]; }
+	template <> unsigned int GetTypeNameHash< NamespaceF::NamespaceA::ShouldReflect >() { return clcppTypeNameHashes[14]; }
+	template <> const Type* GetType< Funcs::CharStruct >() { return clcppTypePtrs[15]; }
+	template <> unsigned int GetTypeNameHash< Funcs::CharStruct >() { return clcppTypeNameHashes[15]; }
+	template <> const Type* GetType< TestTypedefs::AliasedType >() { return clcppTypePtrs[16]; }
+	template <> unsigned int GetTypeNameHash< TestTypedefs::AliasedType >() { return clcppTypeNameHashes[16]; }
+	template <> const Type* GetType< Offsets::DoubleStructInPolymorphicStruct >() { return clcppTypePtrs[17]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DoubleStructInPolymorphicStruct >() { return clcppTypeNameHashes[17]; }
+	template <> const Type* GetType< NamespaceA::NamedNSClassB >() { return clcppTypePtrs[18]; }
+	template <> unsigned int GetTypeNameHash< NamespaceA::NamedNSClassB >() { return clcppTypeNameHashes[18]; }
+	template <> const Type* GetType< clcpp::IWriteIterator >() { return clcppTypePtrs[19]; }
+	template <> unsigned int GetTypeNameHash< clcpp::IWriteIterator >() { return clcppTypeNameHashes[19]; }
+	template <> const Type* GetType< Funcs::Container >() { return clcppTypePtrs[20]; }
+	template <> unsigned int GetTypeNameHash< Funcs::Container >() { return clcppTypeNameHashes[20]; }
+	template <> const Type* GetType< Offsets::PODBase >() { return clcppTypePtrs[21]; }
+	template <> unsigned int GetTypeNameHash< Offsets::PODBase >() { return clcppTypeNameHashes[21]; }
+	template <> const Type* GetType< jsontest::NestedStruct >() { return clcppTypePtrs[22]; }
+	template <> unsigned int GetTypeNameHash< jsontest::NestedStruct >() { return clcppTypeNameHashes[22]; }
+	template <> const Type* GetType< Funcs::BigStruct >() { return clcppTypePtrs[23]; }
+	template <> unsigned int GetTypeNameHash< Funcs::BigStruct >() { return clcppTypeNameHashes[23]; }
+	template <> const Type* GetType< Offsets::DerivedPolymorphicWithPODBase >() { return clcppTypePtrs[24]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DerivedPolymorphicWithPODBase >() { return clcppTypeNameHashes[24]; }
+	template <> const Type* GetType< NamespaceB::AnotherSecondNamedNSClass >() { return clcppTypePtrs[25]; }
+	template <> unsigned int GetTypeNameHash< NamespaceB::AnotherSecondNamedNSClass >() { return clcppTypeNameHashes[25]; }
+	template <> const Type* GetType< NamespaceB::SecondNamedNSClass >() { return clcppTypePtrs[26]; }
+	template <> unsigned int GetTypeNameHash< NamespaceB::SecondNamedNSClass >() { return clcppTypeNameHashes[26]; }
+	template <> const Type* GetType< Offsets::Int64InPolymorphicStruct >() { return clcppTypePtrs[27]; }
+	template <> unsigned int GetTypeNameHash< Offsets::Int64InPolymorphicStruct >() { return clcppTypeNameHashes[27]; }
+	template <> const Type* GetType< TestClassImpl::B >() { return clcppTypePtrs[28]; }
+	template <> unsigned int GetTypeNameHash< TestClassImpl::B >() { return clcppTypeNameHashes[28]; }
+	template <> const Type* GetType< TestTemplates::ParamStruct >() { return clcppTypePtrs[29]; }
+	template <> unsigned int GetTypeNameHash< TestTemplates::ParamStruct >() { return clcppTypeNameHashes[29]; }
+	template <> const Type* GetType< Stuff::NestedStruct >() { return clcppTypePtrs[30]; }
+	template <> unsigned int GetTypeNameHash< Stuff::NestedStruct >() { return clcppTypeNameHashes[30]; }
+	template <> const Type* GetType< Inheritance::DerivedClass >() { return clcppTypePtrs[31]; }
+	template <> unsigned int GetTypeNameHash< Inheritance::DerivedClass >() { return clcppTypeNameHashes[31]; }
+	template <> const Type* GetType< OuterNamespace::InnerNamespace::OuterClass >() { return clcppTypePtrs[32]; }
+	template <> unsigned int GetTypeNameHash< OuterNamespace::InnerNamespace::OuterClass >() { return clcppTypeNameHashes[32]; }
+	template <> const Type* GetType< ::StructGlobalA >() { return clcppTypePtrs[33]; }
+	template <> unsigned int GetTypeNameHash< ::StructGlobalA >() { return clcppTypeNameHashes[33]; }
+	template <> const Type* GetType< Funcs::ThreeStruct >() { return clcppTypePtrs[34]; }
+	template <> unsigned int GetTypeNameHash< Funcs::ThreeStruct >() { return clcppTypeNameHashes[34]; }
+	template <> const Type* GetType< Offsets::K >() { return clcppTypePtrs[35]; }
+	template <> unsigned int GetTypeNameHash< Offsets::K >() { return clcppTypeNameHashes[35]; }
+	template <> const Type* GetType< TestAttributes::ClassAttr >() { return clcppTypePtrs[36]; }
+	template <> unsigned int GetTypeNameHash< TestAttributes::ClassAttr >() { return clcppTypeNameHashes[36]; }
+	template <> const Type* GetType< Offsets::PolymorphicStruct >() { return clcppTypePtrs[37]; }
+	template <> unsigned int GetTypeNameHash< Offsets::PolymorphicStruct >() { return clcppTypeNameHashes[37]; }
+	template <> const Type* GetType< TestArrays::S >() { return clcppTypePtrs[38]; }
+	template <> unsigned int GetTypeNameHash< TestArrays::S >() { return clcppTypeNameHashes[38]; }
+	template <> const Type* GetType< TestAttributes::StructAttr >() { return clcppTypePtrs[39]; }
+	template <> unsigned int GetTypeNameHash< TestAttributes::StructAttr >() { return clcppTypeNameHashes[39]; }
+	template <> const Type* GetType< Inheritance::ErrorClass >() { return clcppTypePtrs[40]; }
+	template <> unsigned int GetTypeNameHash< Inheritance::ErrorClass >() { return clcppTypeNameHashes[40]; }
+	template <> const Type* GetType< Inheritance::BaseClass >() { return clcppTypePtrs[41]; }
+	template <> unsigned int GetTypeNameHash< Inheritance::BaseClass >() { return clcppTypeNameHashes[41]; }
+	template <> const Type* GetType< Offsets::H >() { return clcppTypePtrs[42]; }
+	template <> unsigned int GetTypeNameHash< Offsets::H >() { return clcppTypeNameHashes[42]; }
+	template <> const Type* GetType< Offsets::DoubleStruct >() { return clcppTypePtrs[43]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DoubleStruct >() { return clcppTypeNameHashes[43]; }
+	template <> const Type* GetType< ::FieldTypes >() { return clcppTypePtrs[44]; }
+	template <> unsigned int GetTypeNameHash< ::FieldTypes >() { return clcppTypeNameHashes[44]; }
+	template <> const Type* GetType< Funcs::OddStruct >() { return clcppTypePtrs[45]; }
+	template <> unsigned int GetTypeNameHash< Funcs::OddStruct >() { return clcppTypeNameHashes[45]; }
+	template <> const Type* GetType< Stuff::BaseStruct >() { return clcppTypePtrs[46]; }
+	template <> unsigned int GetTypeNameHash< Stuff::BaseStruct >() { return clcppTypeNameHashes[46]; }
+	template <> const Type* GetType< TestMissingType::Inherit >() { return clcppTypePtrs[47]; }
+	template <> unsigned int GetTypeNameHash< TestMissingType::Inherit >() { return clcppTypeNameHashes[47]; }
+	template <> const Type* GetType< Offsets::I >() { return clcppTypePtrs[48]; }
+	template <> unsigned int GetTypeNameHash< Offsets::I >() { return clcppTypeNameHashes[48]; }
+	template <> const Type* GetType< ::ClassGlobalA >() { return clcppTypePtrs[49]; }
+	template <> unsigned int GetTypeNameHash< ::ClassGlobalA >() { return clcppTypeNameHashes[49]; }
+	template <> const Type* GetType< Offsets::J >() { return clcppTypePtrs[50]; }
+	template <> unsigned int GetTypeNameHash< Offsets::J >() { return clcppTypeNameHashes[50]; }
+	template <> const Type* GetType< Offsets::E >() { return clcppTypePtrs[51]; }
+	template <> unsigned int GetTypeNameHash< Offsets::E >() { return clcppTypeNameHashes[51]; }
+	template <> const Type* GetType< Funcs::EmptyStruct >() { return clcppTypePtrs[52]; }
+	template <> unsigned int GetTypeNameHash< Funcs::EmptyStruct >() { return clcppTypeNameHashes[52]; }
+	template <> const Type* GetType< clcpp::IReadIterator >() { return clcppTypePtrs[53]; }
+	template <> unsigned int GetTypeNameHash< clcpp::IReadIterator >() { return clcppTypeNameHashes[53]; }
+	template <> const Type* GetType< Inheritance::MultipleInheritanceClass >() { return clcppTypePtrs[54]; }
+	template <> unsigned int GetTypeNameHash< Inheritance::MultipleInheritanceClass >() { return clcppTypeNameHashes[54]; }
+	template <> const Type* GetType< NamespaceA::NamedNSClassA >() { return clcppTypePtrs[55]; }
+	template <> unsigned int GetTypeNameHash< NamespaceA::NamedNSClassA >() { return clcppTypeNameHashes[55]; }
+	template <> const Type* GetType< Offsets::VirtualInheritanceBase >() { return clcppTypePtrs[56]; }
+	template <> unsigned int GetTypeNameHash< Offsets::VirtualInheritanceBase >() { return clcppTypeNameHashes[56]; }
+	template <> const Type* GetType< Stuff::DerivedStruct >() { return clcppTypePtrs[57]; }
+	template <> unsigned int GetTypeNameHash< Stuff::DerivedStruct >() { return clcppTypeNameHashes[57]; }
+	template <> const Type* GetType< jsontest::AllFields >() { return clcppTypePtrs[58]; }
+	template <> unsigned int GetTypeNameHash< jsontest::AllFields >() { return clcppTypeNameHashes[58]; }
+	template <> const Type* GetType< Offsets::DoubleInPolymorphicStruct >() { return clcppTypePtrs[59]; }
+	template <> unsigned int GetTypeNameHash< Offsets::DoubleInPolymorphicStruct >() { return clcppTypeNameHashes[59]; }
+	template <> const Type* GetType< NamespaceA::ShouldReflect >() { return clcppTypePtrs[60]; }
+	template <> unsigned int GetTypeNameHash< NamespaceA::ShouldReflect >() { return clcppTypeNameHashes[60]; }
+	template <> const Type* GetType< Offsets::D >() { return clcppTypePtrs[61]; }
+	template <> unsigned int GetTypeNameHash< Offsets::D >() { return clcppTypeNameHashes[61]; }
+	template <> const Type* GetType< ::Blah2 >() { return clcppTypePtrs[62]; }
+	template <> unsigned int GetTypeNameHash< ::Blah2 >() { return clcppTypeNameHashes[62]; }
+	template <> const Type* GetType< TestTypedefs::Container >() { return clcppTypePtrs[63]; }
+	template <> unsigned int GetTypeNameHash< TestTypedefs::Container >() { return clcppTypeNameHashes[63]; }
+	template <> const Type* GetType< Offsets::VirtualInheritancePolymorphicBase >() { return clcppTypePtrs[64]; }
+	template <> unsigned int GetTypeNameHash< Offsets::VirtualInheritancePolymorphicBase >() { return clcppTypeNameHashes[64]; }
+	template <> const Type* GetType< Offsets::F >() { return clcppTypePtrs[65]; }
+	template <> unsigned int GetTypeNameHash< Offsets::F >() { return clcppTypeNameHashes[65]; }
+	template <> const Type* GetType< TestTemplates::Fields >() { return clcppTypePtrs[66]; }
+	template <> unsigned int GetTypeNameHash< TestTemplates::Fields >() { return clcppTypeNameHashes[66]; }
+	template <> const Type* GetType< void >() { return clcppTypePtrs[81]; }
+	template <> unsigned int GetTypeNameHash< void >() { return clcppTypeNameHashes[81]; }
+	template <> const Type* GetType< unsigned long >() { return clcppTypePtrs[82]; }
+	template <> unsigned int GetTypeNameHash< unsigned long >() { return clcppTypeNameHashes[82]; }
+	template <> const Type* GetType< wchar_t >() { return clcppTypePtrs[83]; }
+	template <> unsigned int GetTypeNameHash< wchar_t >() { return clcppTypeNameHashes[83]; }
+	template <> const Type* GetType< short >() { return clcppTypePtrs[84]; }
+	template <> unsigned int GetTypeNameHash< short >() { return clcppTypeNameHashes[84]; }
+	template <> const Type* GetType< long >() { return clcppTypePtrs[85]; }
+	template <> unsigned int GetTypeNameHash< long >() { return clcppTypeNameHashes[85]; }
+	template <> const Type* GetType< unsigned char >() { return clcppTypePtrs[86]; }
+	template <> unsigned int GetTypeNameHash< unsigned char >() { return clcppTypeNameHashes[86]; }
+	template <> const Type* GetType< long long >() { return clcppTypePtrs[87]; }
+	template <> unsigned int GetTypeNameHash< long long >() { return clcppTypeNameHashes[87]; }
+	template <> const Type* GetType< double >() { return clcppTypePtrs[88]; }
+	template <> unsigned int GetTypeNameHash< double >() { return clcppTypeNameHashes[88]; }
+	template <> const Type* GetType< bool >() { return clcppTypePtrs[89]; }
+	template <> unsigned int GetTypeNameHash< bool >() { return clcppTypeNameHashes[89]; }
+	template <> const Type* GetType< unsigned short >() { return clcppTypePtrs[90]; }
+	template <> unsigned int GetTypeNameHash< unsigned short >() { return clcppTypeNameHashes[90]; }
+	template <> const Type* GetType< unsigned int >() { return clcppTypePtrs[91]; }
+	template <> unsigned int GetTypeNameHash< unsigned int >() { return clcppTypeNameHashes[91]; }
+	template <> const Type* GetType< float >() { return clcppTypePtrs[92]; }
+	template <> unsigned int GetTypeNameHash< float >() { return clcppTypeNameHashes[92]; }
+	template <> const Type* GetType< char >() { return clcppTypePtrs[93]; }
+	template <> unsigned int GetTypeNameHash< char >() { return clcppTypeNameHashes[93]; }
+	template <> const Type* GetType< unsigned long long >() { return clcppTypePtrs[94]; }
+	template <> unsigned int GetTypeNameHash< unsigned long long >() { return clcppTypeNameHashes[94]; }
+	template <> const Type* GetType< int >() { return clcppTypePtrs[95]; }
+	template <> unsigned int GetTypeNameHash< int >() { return clcppTypeNameHashes[95]; }
 	#if defined(CLCPP_USING_MSVC)
-	template <> const Type* GetType<jsontest::NoInit>() { return clcppTypePtrs[67]; }
-	template <> unsigned int GetTypeNameHash<jsontest::NoInit>() { return clcppTypeNameHashes[67]; }
-	template <> const Type* GetType<NamespaceB::SecondNamedNSEnum>() { return clcppTypePtrs[68]; }
-	template <> unsigned int GetTypeNameHash<NamespaceB::SecondNamedNSEnum>() { return clcppTypeNameHashes[68]; }
-	template <> const Type* GetType<EnumA>() { return clcppTypePtrs[69]; }
-	template <> unsigned int GetTypeNameHash<EnumA>() { return clcppTypeNameHashes[69]; }
-	template <> const Type* GetType<Stuff::NoInit>() { return clcppTypePtrs[70]; }
-	template <> unsigned int GetTypeNameHash<Stuff::NoInit>() { return clcppTypeNameHashes[70]; }
-	template <> const Type* GetType<OuterNamespace::InnerNamespace::InnerNSEnum>() { return clcppTypePtrs[71]; }
-	template <> unsigned int GetTypeNameHash<OuterNamespace::InnerNamespace::InnerNSEnum>() { return clcppTypeNameHashes[71]; }
-	template <> const Type* GetType<TestTemplates::ParamEnum>() { return clcppTypePtrs[72]; }
-	template <> unsigned int GetTypeNameHash<TestTemplates::ParamEnum>() { return clcppTypeNameHashes[72]; }
-	template <> const Type* GetType<NamedGlobalEnum>() { return clcppTypePtrs[73]; }
-	template <> unsigned int GetTypeNameHash<NamedGlobalEnum>() { return clcppTypeNameHashes[73]; }
-	template <> const Type* GetType<Stuff::SomeEnum>() { return clcppTypePtrs[74]; }
-	template <> unsigned int GetTypeNameHash<Stuff::SomeEnum>() { return clcppTypeNameHashes[74]; }
-	template <> const Type* GetType<TestAttributes::GlobalEnumAttr>() { return clcppTypePtrs[75]; }
-	template <> unsigned int GetTypeNameHash<TestAttributes::GlobalEnumAttr>() { return clcppTypeNameHashes[75]; }
-	template <> const Type* GetType<NamespaceF::EnumA>() { return clcppTypePtrs[76]; }
-	template <> unsigned int GetTypeNameHash<NamespaceF::EnumA>() { return clcppTypeNameHashes[76]; }
-	template <> const Type* GetType<NamespaceB::AnotherSecondNamedEnum>() { return clcppTypePtrs[77]; }
-	template <> unsigned int GetTypeNameHash<NamespaceB::AnotherSecondNamedEnum>() { return clcppTypeNameHashes[77]; }
-	template <> const Type* GetType<jsontest::Value>() { return clcppTypePtrs[78]; }
-	template <> unsigned int GetTypeNameHash<jsontest::Value>() { return clcppTypeNameHashes[78]; }
-	template <> const Type* GetType<NamespaceA::NamedNSEnumA>() { return clcppTypePtrs[79]; }
-	template <> unsigned int GetTypeNameHash<NamespaceA::NamedNSEnumA>() { return clcppTypeNameHashes[79]; }
-	template <> const Type* GetType<NamespaceA::NamedNSEnumB>() { return clcppTypePtrs[80]; }
-	template <> unsigned int GetTypeNameHash<NamespaceA::NamedNSEnumB>() { return clcppTypeNameHashes[80]; }
+	template <> const Type* GetType< jsontest::NoInit >() { return clcppTypePtrs[67]; }
+	template <> unsigned int GetTypeNameHash< jsontest::NoInit >() { return clcppTypeNameHashes[67]; }
+	template <> const Type* GetType< NamespaceB::SecondNamedNSEnum >() { return clcppTypePtrs[68]; }
+	template <> unsigned int GetTypeNameHash< NamespaceB::SecondNamedNSEnum >() { return clcppTypeNameHashes[68]; }
+	template <> const Type* GetType< ::EnumA >() { return clcppTypePtrs[69]; }
+	template <> unsigned int GetTypeNameHash< ::EnumA >() { return clcppTypeNameHashes[69]; }
+	template <> const Type* GetType< Stuff::NoInit >() { return clcppTypePtrs[70]; }
+	template <> unsigned int GetTypeNameHash< Stuff::NoInit >() { return clcppTypeNameHashes[70]; }
+	template <> const Type* GetType< OuterNamespace::InnerNamespace::InnerNSEnum >() { return clcppTypePtrs[71]; }
+	template <> unsigned int GetTypeNameHash< OuterNamespace::InnerNamespace::InnerNSEnum >() { return clcppTypeNameHashes[71]; }
+	template <> const Type* GetType< TestTemplates::ParamEnum >() { return clcppTypePtrs[72]; }
+	template <> unsigned int GetTypeNameHash< TestTemplates::ParamEnum >() { return clcppTypeNameHashes[72]; }
+	template <> const Type* GetType< ::NamedGlobalEnum >() { return clcppTypePtrs[73]; }
+	template <> unsigned int GetTypeNameHash< ::NamedGlobalEnum >() { return clcppTypeNameHashes[73]; }
+	template <> const Type* GetType< Stuff::SomeEnum >() { return clcppTypePtrs[74]; }
+	template <> unsigned int GetTypeNameHash< Stuff::SomeEnum >() { return clcppTypeNameHashes[74]; }
+	template <> const Type* GetType< TestAttributes::GlobalEnumAttr >() { return clcppTypePtrs[75]; }
+	template <> unsigned int GetTypeNameHash< TestAttributes::GlobalEnumAttr >() { return clcppTypeNameHashes[75]; }
+	template <> const Type* GetType< NamespaceF::EnumA >() { return clcppTypePtrs[76]; }
+	template <> unsigned int GetTypeNameHash< NamespaceF::EnumA >() { return clcppTypeNameHashes[76]; }
+	template <> const Type* GetType< NamespaceB::AnotherSecondNamedEnum >() { return clcppTypePtrs[77]; }
+	template <> unsigned int GetTypeNameHash< NamespaceB::AnotherSecondNamedEnum >() { return clcppTypeNameHashes[77]; }
+	template <> const Type* GetType< jsontest::Value >() { return clcppTypePtrs[78]; }
+	template <> unsigned int GetTypeNameHash< jsontest::Value >() { return clcppTypeNameHashes[78]; }
+	template <> const Type* GetType< NamespaceA::NamedNSEnumA >() { return clcppTypePtrs[79]; }
+	template <> unsigned int GetTypeNameHash< NamespaceA::NamedNSEnumA >() { return clcppTypeNameHashes[79]; }
+	template <> const Type* GetType< NamespaceA::NamedNSEnumB >() { return clcppTypePtrs[80]; }
+	template <> unsigned int GetTypeNameHash< NamespaceA::NamedNSEnumB >() { return clcppTypeNameHashes[80]; }
 	#endif
 }