937 Commits

Author SHA1 Message Date
Shane Grant
d5e813aa56 adding units tests for #44 2014-01-16 15:15:11 -08:00
Shane Grant
ce009d9c9a fixing typo for #44 2014-01-16 14:37:53 -08:00
Shane Grant
253c3274fe Adding documentation for issue #43 2014-01-14 14:22:21 -08:00
Shane Grant
0c5846fe93 done with issue #43 aside from documentation
to handle circular nested shared pointer references, we split registration
for an id into a pre and post portion, where pre marks it as being dirty and
post marks it clean (valid).  if we are loading up a reference to something that is
in the progress of being loaded (a nested case), we defer our load until it is no longer
dirty and perform the load afer the post condition happens.
2014-01-14 14:07:08 -08:00
Shane Grant
30836ce2bf Fix for load_and_allocate in regards to issue #42
load_and_allocate did not properly enter into the 'data' NVP that the
ptr_wrapper creates for unique/shared ptr.  When loading these types,
we now go through a wrapper struct to force entry into an extra node to
resolve this issue.

Changes to unittests are for an issue compiling with g++-4.7.3 under
Ubuntu where steady_clock::now() is not defined for some reason
2014-01-07 11:38:28 -08:00
Shane Grant
4de892eaf8 Merge branch 'develop' of github.com:USCiLab/cereal into develop
Conflicts:
	include/cereal/cereal.hpp
	include/cereal/details/helpers.hpp
2014-01-07 10:21:54 -08:00
Shane Grant
06185def6b Looks like some changes that never got commited for issue #17 in regards to -WShadow 2014-01-07 10:17:09 -08:00
Shane Grant
b3527ffd0f Missing const on weak_ptr lock, addresses part of issue #43 2014-01-06 12:12:38 -08:00
Shane Grant
436a0a275c g++ 4.7.3 compatability fixed
closes #38

Added a preprocessor define CEREAL_OLDER_GCC that exists if using
any GCC 4.7.x or earlier.  If this is defined some type traits change to
our original solution (prior to VS compatible), which is probably what we'd switch
to if VS ever gets around to fully supporting SFINAE and constexpr.

In map and set, as well as in unit tests, use insert instead of emplace for 4.7.x.
2013-12-22 13:25:06 -08:00
Shane Grant
456122cfd0 re-do fix for 4.7
beware using the wrong compiler, still uses typo fix
2013-12-22 12:41:18 -08:00
Shane Grant
046eefa4af fixed typo in characterOk that allows previous 4.7 workaround to be removed 2013-12-22 12:39:20 -08:00
Shane Grant
402ff90c4e 4.7 compatability changes
-Convert to int with constexpr in reader/writer to avoid
 always false comparison error in gcc 4.7.3
-make clean now removes visual studio sandbox if built
-fixes to traits for 4.7, still more to do there
see #38
2013-12-22 12:32:54 -08:00
Shane Grant
89baf45371 fixed shadow warning 2013-12-22 12:15:50 -08:00
Shane Grant
8e5fa8ef33 testing macros for gcc 4.7 2013-12-22 12:14:23 -08:00
Shane Grant
9085b6dc79 Adding tests for #8, fixed bug re #8
Added a test case for versioning which exposed a small bug that related to loading versioned data due to an improper use
of static.
2013-12-21 23:21:24 -08:00
Shane Grant
7ef5a9311b Making some changes on vs2013, replacing some typedefs with using statements now that those are cool 2013-12-21 21:22:46 -08:00
Shane Grant
f9b3eb5bd6 Adding missing header from access for std::uint32 2013-12-21 13:54:10 -08:00
Shane Grant
10b7f7a00f Compiling with pedantic on
see issue #17
2013-12-21 00:08:37 -08:00
Shane Grant
f27eb02caf Compiling with clang and gcc with -Wshadow
See issue #17

Somewhere along the way we've also broken our ability to compile with GCC 4.7.3.  We'll have to decide if we care about
supporting 4.7.3 or not.  The changes that break this are:

-there is no emplace in std::map (or related) in 4.7.3
-there are some enable_ifs in rapidjson's writer.h that are always false (which is fine), but
GCC 4.7.3 doesn't like this
2013-12-20 20:22:17 -08:00
Shane Grant
16b6e791a4 Compiles with wextra under clang 2013-12-20 11:56:28 -08:00
Shane Grant
cc9c4ac2b2 make all compiling with wextra
see #17
2013-12-20 11:51:45 -08:00
Shane Grant
59f066f974 doxygen updates #22 2013-12-20 11:41:17 -08:00
Shane Grant
c98a232fb1 no longer calling versioning "boost transition layer"
Separating actual boost transition layer (operator&, <<, >>) with the versioning
stuff, which is now a feature of cereal on its own.

Moving macro for defining version information into cereal.hpp to make it visible.

Added code level (doxygen) documentation for these features

See issue #22
2013-12-20 11:36:05 -08:00
Shane Grant
4a698e9e76 Merge branch 'develop' of github.com:USCiLab/cereal into develop 2013-12-20 11:11:25 -08:00
Shane Grant
b85a2ad7bb Adds denormal support for json
see issue #31
2013-12-20 11:10:49 -08:00
Shane Grant
b5e1f3af26 Adding support for denormalized floating point 2013-12-20 10:43:02 -08:00
Shane Grant
a4b438e59e adds ability to parse infinity 2013-12-20 10:11:29 -08:00
Shane Grant
f178572e77 Adding ability to parse NaN 2013-12-20 10:08:09 -08:00
Randolph Voorhies
087a64298e Small code cleanup 2013-12-19 20:02:47 -08:00
Randolph Voorhies
6246b652a5 Making the Versions struct a StaticObject
This refs issue #37 and possibly fixes it.
2013-12-18 18:04:25 -08:00
Shane Grant
d6bfabe7cc Versioning working
see #8
2013-12-11 12:02:12 -08:00
Shane Grant
6dcef8370b unstable wip 2013-12-10 16:47:40 -08:00
Shane Grant
9a3b1a339c Boost transition layer saving working
See issue #8
2013-12-08 13:28:39 -08:00
Shane Grant
d30c21e5f8 Serialize (save) working with versioning
Simple case of making these functions for the rest of the output archive serialization functions and then adding it to
load.  Progress towards issue #8.
2013-12-04 23:58:58 -08:00
Shane Grant
e64ad60b4a closes #34 2013-12-04 23:39:50 -08:00
Shane Grant
2c15ff7103 More progress towards issue #8
Remaining things to do: Modify cereal.hpp to properly choose between
versioned and non-versioned functions and place entries in the set of
versioned types as appropriate.
2013-12-02 22:52:31 -08:00
Shane Grant
646d35222a Modified performance testing for Boost Transition Layer
Had to split apart the structs that were being serialized by both boost and cereal
as we no longer allow a type to have both versioned and non-versioned serialization functions
2013-12-02 22:32:43 -08:00
Shane Grant
cf64c03335 Working on type traits for Boost Transition Layer 2013-12-02 21:28:48 -08:00
Shane Grant
61315b09ec adding version macro for boost transition layer 2013-12-01 00:10:31 -08:00
Shane Grant
3411b0f3a8 testing boost ops 2013-10-17 15:22:17 -07:00
Shane Grant
a5641c5421 implements operator& and <<, >> overloads for boost compat
see #8
2013-10-17 15:19:48 -07:00
Shane Grant
b733fe6f46 Should close #13
Cleaned up the implementation a little, I'm sure it can still be optimized further.  Undid some hacky things in
rapidjson that the old implementation utilized.
2013-10-17 11:35:55 -07:00
Shane Grant
855002604b unordered json working, needs to be optimized 2013-10-17 10:58:02 -07:00
Shane Grant
7bd5dffff9 working on json unordered loads, almost settled on a solution 2013-10-16 17:16:22 -07:00
Shane Grant
279d60c008 Fixes #27 2013-10-16 13:37:25 -07:00
Shane Grant
400b72ecfc Progress towards #13 unordered JSON loads 2013-10-14 12:04:57 -07:00
Shane Grant
54d02ab16a documentation and code cleanup 2013-10-14 11:09:50 -07:00
Shane Grant
4e7ec310b3 mostly comment changes 2013-10-12 16:03:28 -07:00
Shane Grant
8b170b1651 more reorg/doc updates 2013-10-09 11:33:27 -07:00
Shane Grant
767c9ee06f Making makefile a bit nicer, moving some code around in xml.hpp to better organize it 2013-10-09 11:23:08 -07:00