mirror of
https://github.com/USCiLab/cereal.git
synced 2025-10-18 01:45:52 +02:00
moving vs stuff into vs folder
This commit is contained in:
@@ -1,191 +1,191 @@
|
|||||||
#include <cereal/access.hpp>
|
#include <cereal/access.hpp>
|
||||||
#include <cereal/details/traits.hpp>
|
#include <cereal/details/traits.hpp>
|
||||||
#include <cereal/details/helpers.hpp>
|
#include <cereal/details/helpers.hpp>
|
||||||
#include <cereal/types/base_class.hpp>
|
#include <cereal/types/base_class.hpp>
|
||||||
#include <cereal/cereal.hpp>
|
#include <cereal/cereal.hpp>
|
||||||
|
|
||||||
#include <cereal/types/array.hpp>
|
#include <cereal/types/array.hpp>
|
||||||
#include <cereal/types/bitset.hpp>
|
#include <cereal/types/bitset.hpp>
|
||||||
#include <cereal/types/boost_variant.hpp>
|
#include <cereal/types/boost_variant.hpp>
|
||||||
#include <cereal/types/chrono.hpp>
|
#include <cereal/types/chrono.hpp>
|
||||||
#include <cereal/types/common.hpp>
|
#include <cereal/types/common.hpp>
|
||||||
#include <cereal/types/complex.hpp>
|
#include <cereal/types/complex.hpp>
|
||||||
#include <cereal/types/deque.hpp>
|
#include <cereal/types/deque.hpp>
|
||||||
#include <cereal/types/forward_list.hpp>
|
#include <cereal/types/forward_list.hpp>
|
||||||
#include <cereal/types/list.hpp>
|
#include <cereal/types/list.hpp>
|
||||||
#include <cereal/types/map.hpp>
|
#include <cereal/types/map.hpp>
|
||||||
#include <cereal/types/memory.hpp>
|
#include <cereal/types/memory.hpp>
|
||||||
|
|
||||||
#include <cereal/details/util.hpp>
|
#include <cereal/details/util.hpp>
|
||||||
|
|
||||||
#include <cereal/details/polymorphic_impl.hpp>
|
#include <cereal/details/polymorphic_impl.hpp>
|
||||||
#include <cereal/types/polymorphic.hpp>
|
#include <cereal/types/polymorphic.hpp>
|
||||||
|
|
||||||
#include <cereal/types/queue.hpp>
|
#include <cereal/types/queue.hpp>
|
||||||
#include <cereal/types/set.hpp>
|
#include <cereal/types/set.hpp>
|
||||||
#include <cereal/types/stack.hpp>
|
#include <cereal/types/stack.hpp>
|
||||||
#include <cereal/types/string.hpp>
|
#include <cereal/types/string.hpp>
|
||||||
#include <cereal/types/tuple.hpp>
|
#include <cereal/types/tuple.hpp>
|
||||||
#include <cereal/types/unordered_map.hpp>
|
#include <cereal/types/unordered_map.hpp>
|
||||||
#include <cereal/types/unordered_set.hpp>
|
#include <cereal/types/unordered_set.hpp>
|
||||||
#include <cereal/types/utility.hpp>
|
#include <cereal/types/utility.hpp>
|
||||||
#include <cereal/types/vector.hpp>
|
#include <cereal/types/vector.hpp>
|
||||||
|
|
||||||
#include <cereal/archives/binary.hpp>
|
#include <cereal/archives/binary.hpp>
|
||||||
#include <cereal/archives/portable_binary.hpp>
|
#include <cereal/archives/portable_binary.hpp>
|
||||||
#include <cereal/archives/xml.hpp>
|
#include <cereal/archives/xml.hpp>
|
||||||
#include <cereal/archives/json.hpp>
|
#include <cereal/archives/json.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
struct Archive {};
|
struct Archive {};
|
||||||
|
|
||||||
struct Test
|
struct Test
|
||||||
{
|
{
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize( Archive & ar )
|
void serialize( Archive & ar )
|
||||||
{
|
{
|
||||||
std::cout << "hey there" << std::endl;
|
std::cout << "hey there" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void save( Archive & ar ) const
|
void save( Archive & ar ) const
|
||||||
{
|
{
|
||||||
std::cout << "saved by the bell" << std::endl;
|
std::cout << "saved by the bell" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void load( Archive & ar )
|
void load( Archive & ar )
|
||||||
{
|
{
|
||||||
std::cout << "locked and loaded" << std::endl;
|
std::cout << "locked and loaded" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
static Test * load_and_allocate( Archive & ar )
|
static Test * load_and_allocate( Archive & ar )
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize( Archive & ar, Test & t )
|
void serialize( Archive & ar, Test & t )
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void load( Archive & ar, Test & t )
|
void load( Archive & ar, Test & t )
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void save( Archive & ar, Test const & t )
|
void save( Archive & ar, Test const & t )
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
namespace cereal
|
namespace cereal
|
||||||
{
|
{
|
||||||
template <>
|
template <>
|
||||||
struct LoadAndAllocate<Test>
|
struct LoadAndAllocate<Test>
|
||||||
{
|
{
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
static Test * load_and_allocate( Archive & ar )
|
static Test * load_and_allocate( Archive & ar )
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
struct A
|
struct A
|
||||||
{
|
{
|
||||||
virtual void foo() = 0;
|
virtual void foo() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct B : A
|
struct B : A
|
||||||
{
|
{
|
||||||
void foo() {}
|
void foo() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct C
|
struct C
|
||||||
{
|
{
|
||||||
char a;
|
char a;
|
||||||
};
|
};
|
||||||
|
|
||||||
CEREAL_REGISTER_TYPE(B);
|
CEREAL_REGISTER_TYPE(B);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
||||||
typedef Test T;
|
typedef Test T;
|
||||||
|
|
||||||
// Test Load and Allocate internal/external
|
// Test Load and Allocate internal/external
|
||||||
std::cout << "\tload_and_allocate" << std::endl;
|
std::cout << "\tload_and_allocate" << std::endl;
|
||||||
std::cout << cereal::traits::has_member_load_and_allocate<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_member_load_and_allocate<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::has_non_member_load_and_allocate<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_non_member_load_and_allocate<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// serialize
|
// serialize
|
||||||
std::cout << "\tserialize" << std::endl;
|
std::cout << "\tserialize" << std::endl;
|
||||||
std::cout << cereal::traits::has_member_serialize<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_member_serialize<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::has_non_member_serialize<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_non_member_serialize<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// load
|
// load
|
||||||
std::cout << "\tload" << std::endl;
|
std::cout << "\tload" << std::endl;
|
||||||
std::cout << cereal::traits::has_member_load<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_member_load<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::has_non_member_load<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_non_member_load<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// save
|
// save
|
||||||
std::cout << "\tsave" << std::endl;
|
std::cout << "\tsave" << std::endl;
|
||||||
std::cout << cereal::traits::has_member_save<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_member_save<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::has_non_member_save<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_non_member_save<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// splittable
|
// splittable
|
||||||
std::cout << "\t splittable" << std::endl;
|
std::cout << "\t splittable" << std::endl;
|
||||||
std::cout << cereal::traits::has_member_split<T, Archive, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_member_split<T, Archive, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::has_non_member_split<T, Archive, Archive>::value << std::endl;
|
std::cout << cereal::traits::has_non_member_split<T, Archive, Archive>::value << std::endl;
|
||||||
|
|
||||||
// serialiable
|
// serialiable
|
||||||
std::cout << "\toutput serializable" << std::endl;
|
std::cout << "\toutput serializable" << std::endl;
|
||||||
std::cout << cereal::traits::is_output_serializable<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::is_output_serializable<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::is_input_serializable<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::is_input_serializable<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// specialized
|
// specialized
|
||||||
std::cout << "\tspecialized" << std::endl;
|
std::cout << "\tspecialized" << std::endl;
|
||||||
std::cout << cereal::traits::detail::is_specialized_member_serialize<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::detail::is_specialized_member_serialize<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::detail::is_specialized_member_load_save<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::detail::is_specialized_member_load_save<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::detail::is_specialized_non_member_serialize<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::detail::is_specialized_non_member_serialize<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::detail::is_specialized_non_member_load_save<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::detail::is_specialized_non_member_load_save<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::detail::is_specialized_error<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::detail::is_specialized_error<T, Archive>::value << std::endl;
|
||||||
std::cout << cereal::traits::is_specialized<T, Archive>::value << std::endl;
|
std::cout << cereal::traits::is_specialized<T, Archive>::value << std::endl;
|
||||||
|
|
||||||
// array size
|
// array size
|
||||||
typedef int arr[5][3][2];
|
typedef int arr[5][3][2];
|
||||||
std::cout << "\tarray size" << std::endl;
|
std::cout << "\tarray size" << std::endl;
|
||||||
std::cout << cereal::traits::sizeof_array<arr>::value << std::endl;
|
std::cout << cereal::traits::sizeof_array<arr>::value << std::endl;
|
||||||
|
|
||||||
std::cout << typeid(A).name() << std::endl;
|
std::cout << typeid(A).name() << std::endl;
|
||||||
std::cout << typeid(cereal::traits::has_load_and_allocate<int, bool>).name() << std::endl;
|
std::cout << typeid(cereal::traits::has_load_and_allocate<int, bool>).name() << std::endl;
|
||||||
|
|
||||||
Archive a;
|
Archive a;
|
||||||
T t;
|
T t;
|
||||||
|
|
||||||
cereal::access::member_save( a, t );
|
cereal::access::member_save( a, t );
|
||||||
cereal::access::member_load( a, t );
|
cereal::access::member_load( a, t );
|
||||||
cereal::access::member_serialize( a, t );
|
cereal::access::member_serialize( a, t );
|
||||||
|
|
||||||
//std::stringstream ss;
|
//std::stringstream ss;
|
||||||
{
|
{
|
||||||
cereal::JSONOutputArchive ar( std::cout );
|
cereal::JSONOutputArchive ar( std::cout );
|
||||||
ar( 5 );
|
ar( 5 );
|
||||||
ar( cereal::make_nvp("hello", 2.4f ) );
|
ar( cereal::make_nvp("hello", 2.4f ) );
|
||||||
std::string s = "hey yo";
|
std::string s = "hey yo";
|
||||||
ar( CEREAL_NVP( s ) );
|
ar( CEREAL_NVP( s ) );
|
||||||
}
|
}
|
||||||
//{
|
//{
|
||||||
// cereal::JSONInputArchive ar( ss );
|
// cereal::JSONInputArchive ar( ss );
|
||||||
// int x;
|
// int x;
|
||||||
// ar( x );
|
// ar( x );
|
||||||
// assert( x == 5 );
|
// assert( x == 5 );
|
||||||
// float f;
|
// float f;
|
||||||
// ar( f );
|
// ar( f );
|
||||||
// assert( f == 2.4f );
|
// assert( f == 2.4f );
|
||||||
// std::string s;
|
// std::string s;
|
||||||
// ar( s );
|
// ar( s );
|
||||||
// assert( s == "hey yo" );
|
// assert( s == "hey yo" );
|
||||||
//}
|
//}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -74,9 +74,6 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\sandbox_vs2012.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\include\cereal\access.hpp" />
|
<ClInclude Include="..\include\cereal\access.hpp" />
|
||||||
<ClInclude Include="..\include\cereal\archives\binary.hpp" />
|
<ClInclude Include="..\include\cereal\archives\binary.hpp" />
|
||||||
@@ -128,6 +125,9 @@
|
|||||||
<ClInclude Include="..\include\cereal\types\utility.hpp" />
|
<ClInclude Include="..\include\cereal\types\utility.hpp" />
|
||||||
<ClInclude Include="..\include\cereal\types\vector.hpp" />
|
<ClInclude Include="..\include\cereal\types\vector.hpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="sandbox_vs2012.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -14,11 +14,6 @@
|
|||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\sandbox_vs2012.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\include\cereal\access.hpp">
|
<ClInclude Include="..\include\cereal\access.hpp">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
@@ -168,4 +163,9 @@
|
|||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="sandbox_vs2012.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Reference in New Issue
Block a user