Removed object copy in implicit conversion class.
Removed redundant function prototype declaration.
Adjusted tab position.
Removed redundant try-catch, zone's constructor never throw.
In the C++11 version, added noexcept.
In the C++03 version, added throw() as comments because actual throw() introduces some overhead.
Untabified.
Modified zone* to zone&.
Modified unpack_user* to unpack_user&.
Removed redundant 'static'.
Modified 'unpacked' interface using references instead of pointers.
Added speed test for 'unpacked' based unpack() function.
Tabified.
Indent adjusted.
Replaced TAKE8_* macros with inline function named take8_*.
Modified byte stream using char instead of unsigned char.
Renamed functions from pack_real_* to pack_imp_*.
Modified the parameter of object::convert() from pointer to reference.
Modified type classes' interfaces parameters 'object' from passed by value to passed by reference.
Restored pointer based interfaces to maintain compatibility.
Restored the test cases using pointer based interfaces.
It assures that we can use the same interfaces as the original version(0.5.6).
To support both C++03 and C++11, I introduced msgpack::unique_ptr and msgpack::move() in test codes.
Removed the last comma at enum definitions to support C++03 strictly.
Added inline for constructors and a destructor.
Used the reference version of convert instead of pointer version.
Added inline keyword.
Removed template_callback_root.
Modified template functions' return value from int to bool.
Modified return type from bool to void in functions that always return true.
Modified the offset parameter of template_context::execute() from pointer to reference.