Compare commits

..

21 Commits

Author SHA1 Message Date
Takatoshi Kondo
fb64ea0b68 Merge pull request #1033 from redboltz/upd_412
Update the version to 4.1.2.
2022-09-07 13:22:21 +09:00
Takatoshi Kondo
0b9a597360 Update the version to 4.1.2. 2022-09-07 12:55:10 +09:00
Takatoshi Kondo
d5cef62cb9 Merge pull request #1032 from AlexisTM/feature/prevent_usage_of_boost
Prevents the looking for boost if built without it for dependents
2022-09-02 16:10:02 +09:00
Alexis Paques
0b2c6d9d1a Prevent looking for Boost if we do not need it 2022-08-31 11:04:31 +00:00
Takatoshi Kondo
cef8a6fdfa Merge pull request #1028 from redboltz/fix_1025
Fixed #1025.
2022-08-19 22:11:27 +09:00
Takatoshi Kondo
cd5ba5057e Merge pull request #1030 from redboltz/fix_1029
Fixed #1029.
2022-08-19 22:10:46 +09:00
Takatoshi Kondo
5eabf7189a Fixed #1029.
Removed invalid `noexcept` from zone's constructor.
2022-08-19 09:34:07 +09:00
Takatoshi Kondo
12be5d06e3 Fixed #1025.
Propagate compiler options that are decided by cmake options to the
parent project.
2022-08-06 10:58:36 +09:00
Takatoshi Kondo
25c3947a91 Merge pull request #1011 from timblechmann/fix/make-some-headers-self-contained
make some headers self-contained
2022-07-10 19:55:31 +09:00
Takatoshi Kondo
d13d933eea Merge pull request #1018 from GeorgFritze/cpp_master
pack double and float more size efficient
2022-06-13 23:02:38 +09:00
GeorgFritze
33ff3a45b8 fix undefined bahaviour in msgpack_basic tests 2022-06-13 10:58:45 +02:00
GeorgFritze
05de839b44 fix bug in pack_float and pack_double 2022-06-13 09:18:22 +02:00
GeorgFritze
d59e1d7716 update msgpack_basic test for compact double packaging
update pack_double and pack_float to avoid warnings
2022-06-07 09:46:39 +02:00
GeorgFritze
d5c837b612 style changes 2022-06-03 15:08:23 +02:00
GeorgFritze
3b405fcab3 Merge branch 'msgpack:cpp_master' into cpp_master 2022-06-02 10:41:36 +02:00
GeorgFritze
68acf21a8e pack double and float in a more size efficient way
check also for nan and numeric limits
2022-06-02 10:40:51 +02:00
Takatoshi Kondo
05f654fd64 Merge pull request #1021 from drdzyk/cpp_master
fix detection of linux based os
2022-05-25 20:24:05 +09:00
Stanislav Eismont
07c5b00c4a update zlib from 1.2.11 to 1.2.12 version to prevent CI failure. 1.2.11 version is no longer available 2022-05-25 13:31:04 +03:00
Stanislav Eismont
7bcb6aad05 fix detection of linux based os. According to https://sourceforge.net/p/predef/wiki/OperatingSystems/ 'linux' macro is obsolete, '__linux__' should be used instead. It turns out that 'linux' macro undefined when compiling project with e.g. '-std=c++11' compilation flag 2022-05-25 10:42:43 +03:00
Georg Fritze
6f0683bb46 pack double and float more size efficient 2022-05-13 13:04:17 +02:00
Tim Blechmann
8b87e62835 make some headers self-contained
some headers are not self-contained, as they depend on
symbols from headers which aren't included
2022-03-23 15:29:12 +08:00
65 changed files with 133 additions and 36 deletions

View File

@@ -27,9 +27,9 @@ while getopts "b:t:p:" c; do
done
mkdir $prefix || exit 1
wget https://zlib.net/zlib-1.2.11.tar.gz || exit 1
tar -xf zlib-1.2.11.tar.gz || exit 1
cd zlib-1.2.11
wget https://zlib.net/zlib-1.2.12.tar.gz || exit 1
tar -xf zlib-1.2.12.tar.gz || exit 1
cd zlib-1.2.12
build()
{

View File

@@ -36,7 +36,7 @@ jobs:
uses: actions/cache@v2
with:
path: ~/zlib-prefix/
key: ${{ runner.os }}-zlib-1-2-11-2021-08-09
key: ${{ runner.os }}-zlib-1-2-12-2021-08-09
- name: Build zlib
if: steps.cache-zlib.outputs.cache-hit != 'true'
@@ -111,7 +111,7 @@ jobs:
uses: actions/cache@v2
with:
path: ~/zlib-prefix/
key: ${{ runner.os }}-zlib-1-2-11-2021-08-09
key: ${{ runner.os }}-zlib-1-2-12-2021-08-09
- name: Build zlib
if: steps.cache-zlib.outputs.cache-hit != 'true'

View File

@@ -1,3 +1,11 @@
# 2022-09-07 version 4.1.2 for C++
* Fix noexcept on zone (#1030)
* Improve cmake support (#1028, #1032)
* Improve CI (#1023)
* Improve supporting platform (#1021)
* Refine double/float packing (#1018)
* Refine include files dependency (#1011)
# 2022-03-09 version 4.1.1 for C++
* Remove chrono support on `MSGPACK_NO_BOOST` to fix compile error.
* Improve build system (#1003)

View File

@@ -4,6 +4,8 @@ CMAKE_POLICY (SET CMP0054 NEW)
PROJECT (msgpack LANGUAGES CXX)
ADD_LIBRARY (msgpackc-cxx INTERFACE)
FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.hpp contents)
STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents})
SET (VERSION_MAJOR ${CMAKE_MATCH_1})
@@ -55,11 +57,11 @@ ENDIF ()
IF (MSGPACK_32BIT)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}")
SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}")
TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32)
TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32)
ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}")
SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}")
TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32)
TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32)
ENDIF ()
ENDIF ()
@@ -76,18 +78,18 @@ IF (MSGPACK_USE_BOOST)
FIND_PACKAGE (Boost REQUIRED)
ELSE ()
SET (CMAKE_CXX_FLAGS "-DMSGPACK_NO_BOOST ${CMAKE_CXX_FLAGS}")
TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_NO_BOOST)
ENDIF ()
IF (MSGPACK_CHAR_SIGN)
SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}")
TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -f${MSGPACK_CHAR_SIGN}-char)
ENDIF ()
IF (MSGPACK_DEFAULT_API_VERSION)
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}")
TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION})
ELSE ()
SET (MSGPACK_DEFAULT_API_VERSION 3)
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}")
TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=3)
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
@@ -110,8 +112,6 @@ ENDIF ()
INCLUDE (Files.cmake)
ADD_LIBRARY (msgpackc-cxx INTERFACE)
TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
@@ -134,7 +134,6 @@ IF (MSGPACK_GEN_COVERAGE)
INCLUDE (CodeCoverage)
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}")
SETUP_TARGET_FOR_COVERAGE(coverage make coverage test)
ENDIF ()
@@ -157,7 +156,7 @@ IF (MSGPACK_FUZZ_REGRESSION)
ENDIF ()
IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc")
SET (CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS}")
TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_ZONE_ALIGN=8)
ENDIF ()
IF (MSGPACK_BUILD_EXAMPLES)

View File

@@ -1,7 +1,7 @@
`msgpack` for C++
===================
Version 4.1.1 [![Build Status](https://github.com/msgpack/msgpack-c/workflows/CI/badge.svg?branch=cpp_master)](https://github.com/msgpack/msgpack-c/actions) [![Build status](https://ci.appveyor.com/api/projects/status/8kstcgt79qj123mw/branch/cpp_master?svg=true)](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/cpp_master)
Version 4.1.2 [![Build Status](https://github.com/msgpack/msgpack-c/workflows/CI/badge.svg?branch=cpp_master)](https://github.com/msgpack/msgpack-c/actions) [![Build status](https://ci.appveyor.com/api/projects/status/8kstcgt79qj123mw/branch/cpp_master?svg=true)](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/cpp_master)
[![codecov](https://codecov.io/gh/msgpack/msgpack-c/branch/cpp_master/graph/badge.svg)](https://codecov.io/gh/msgpack/msgpack-c/branch/cpp_master)
It's like JSON but smaller and faster.

View File

@@ -1,4 +1,4 @@
version: 4.1.1.{build}
version: 4.1.2.{build}
branches:
only:
@@ -23,10 +23,10 @@ environment:
boost_subdir: lib32-msvc-14.0
build_script:
- ps: |
appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz
7z x zlib-1.2.11.tar.gz 2> $null
7z x zlib-1.2.11.tar 2> $null
cd zlib-1.2.11
appveyor DownloadFile http://zlib.net/zlib-1.2.12.tar.gz -FileName zlib-1.2.12.tar.gz
7z x zlib-1.2.12.tar.gz 2> $null
7z x zlib-1.2.12.tar 2> $null
cd zlib-1.2.12
md build
md prefix
@@ -34,7 +34,7 @@ build_script:
cmake `
-G $env:msvc `
-D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" `
-D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.12\prefix" `
..
if ($LastExitCode -ne 0) { exit $LastExitCode }
@@ -52,7 +52,7 @@ build_script:
-D MSGPACK_BUILD_EXAMPLES=ON `
-D MSGPACK_BUILD_TESTS=ON `
-D CMAKE_EXE_LINKER_FLAGS=/LIBPATH:"$env:boost_prefix\$env:boost_subdir" `
-D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" `
-D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.12\prefix" `
-D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\prefix" `
-D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /DBOOST_ALL_DYN_LINK" `
..
@@ -62,5 +62,5 @@ build_script:
if ($LastExitCode -ne 0) { exit $LastExitCode }
test_script:
- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir%
- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.12\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir%
- ctest -VV -C Release

View File

@@ -138,7 +138,7 @@ class zone {
finalizer_array m_finalizer_array;
public:
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */;
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE);
public:
void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN);
@@ -194,7 +194,7 @@ private:
zone& operator=(const zone&);
};
inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
inline zone::zone(size_t chunk_size):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
{
}

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)

View File

@@ -27,7 +27,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
defined(linux) || defined(__linux) \
defined(linux) || defined(__linux) || defined(__linux__) \
)
# undef MSGPACK_OS_LINUX
# define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE

View File

@@ -88,7 +88,7 @@
#elif defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__)
#include <arpa/inet.h> /* __BYTE_ORDER */
# if defined(linux)
# if defined(linux) || defined(__linux__)
# include <byteswap.h>
# endif

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include "msgpack/meta.hpp"

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include "msgpack/adaptor/boost/string_ref.hpp"
#include "msgpack/adaptor/ext.hpp"

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#if defined(__GNUC__)

View File

@@ -15,6 +15,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <boost/utility/string_ref.hpp>

View File

@@ -15,6 +15,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <boost/utility/string_view.hpp>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include "msgpack/meta.hpp"

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <array>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <array>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <chrono>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <forward_list>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <memory>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <memory>

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/object.hpp"
#include <ctime>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include "msgpack/meta.hpp"

View File

@@ -13,6 +13,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <memory>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <unordered_map>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <unordered_set>

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <array>

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/adaptor/int_decl.hpp"
#include "msgpack/object.hpp"

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <cstring>

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <optional>

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <string_view>

View File

@@ -16,6 +16,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <vector>

View File

@@ -18,6 +18,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include "msgpack/meta.hpp"

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <deque>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {
/// @cond

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {
/// @cond

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include <cstring>
#include <string>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/int.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include <limits>
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <list>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/meta.hpp"
#include <utility>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include <cstring>
#include <string>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/msgpack_tuple.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <string>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <vector>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <vector>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <vector>

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
#include "msgpack/adaptor/check_container_size.hpp"
#include <vector>

View File

@@ -138,7 +138,7 @@ class zone {
finalizer_array m_finalizer_array;
public:
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */;
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE);
public:
void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN);
@@ -239,7 +239,7 @@ private:
zone& operator=(const zone&);
};
inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
inline zone::zone(size_t chunk_size):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
{
}

View File

@@ -171,7 +171,7 @@ private:
finalizer_array m_finalizer_array;
public:
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) noexcept;
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE);
public:
void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN);
@@ -226,7 +226,7 @@ private:
char* allocate_expand(size_t size);
};
inline zone::zone(size_t chunk_size) noexcept:m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
inline zone::zone(size_t chunk_size):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
{
}

View File

@@ -1138,6 +1138,17 @@ inline packer<Stream>& packer<Stream>::pack_unsigned_long_long(unsigned long lon
template <typename Stream>
inline packer<Stream>& packer<Stream>::pack_float(float d)
{
if(d == d) { // check for nan
// compare d to limits to avoid undefined behaviour
if(d >= 0 && d <= float(std::numeric_limits<uint64_t>::max()) && d == float(uint64_t(d))) {
pack_imp_uint64(uint64_t(d));
return *this;
} else if(d < 0 && d >= float(std::numeric_limits<int64_t>::min()) && d == float(int64_t(d))) {
pack_imp_int64(int64_t(d));
return *this;
}
}
union { float f; uint32_t i; } mem;
mem.f = d;
char buf[5];
@@ -1149,6 +1160,17 @@ inline packer<Stream>& packer<Stream>::pack_float(float d)
template <typename Stream>
inline packer<Stream>& packer<Stream>::pack_double(double d)
{
if(d == d) { // check for nan
// compare d to limits to avoid undefined behaviour
if(d >= 0 && d <= double(std::numeric_limits<uint64_t>::max()) && d == double(uint64_t(d))) {
pack_imp_uint64(uint64_t(d));
return *this;
} else if(d < 0 && d >= double(std::numeric_limits<int64_t>::min()) && d == double(int64_t(d))) {
pack_imp_int64(int64_t(d));
return *this;
}
}
union { double f; uint64_t i; } mem;
mem.f = d;
char buf[9];

View File

@@ -10,6 +10,7 @@
#ifndef MSGPACK_V1_SBUFFER_HPP
#define MSGPACK_V1_SBUFFER_HPP
#include "msgpack/v1/cpp_config_decl.hpp"
#include "msgpack/v1/sbuffer_decl.hpp"
#include "msgpack/assert.hpp"

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -12,6 +12,7 @@
#include "msgpack/versioning.hpp"
#include "msgpack/adaptor/adaptor_base.hpp"
#include "msgpack/object.hpp"
namespace msgpack {

View File

@@ -1,3 +1,3 @@
#define MSGPACK_VERSION_MAJOR 4
#define MSGPACK_VERSION_MINOR 1
#define MSGPACK_VERSION_REVISION 1
#define MSGPACK_VERSION_REVISION 2

View File

@@ -2,7 +2,9 @@
include(CMakeFindDependencyMacro)
IF (@MSGPACK_USE_BOOST@)
find_dependency(Boost REQUIRED)
ENDIF ()
include("${CMAKE_CURRENT_LIST_DIR}/msgpackc-cxx-targets.cmake")

View File

@@ -154,6 +154,8 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float)
v.push_back(-0.0);
v.push_back(1.0);
v.push_back(-1.0);
v.push_back(1.1f);
v.push_back(-1.1f);
v.push_back(numeric_limits<float>::min());
v.push_back(numeric_limits<float>::max());
v.push_back(nanf("tag"));
@@ -186,6 +188,12 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float)
BOOST_CHECK(std::isinf(val2));
else
BOOST_CHECK(fabs(val2 - val1) <= kEPS);
// check for compact storing of float
if (val1 == val1 && val1 >= float(std::numeric_limits<int64_t>::min()) && val1 <= float(std::numeric_limits<int64_t>::max()) && val1 == float(int64_t(val1)))
BOOST_REQUIRE_EQUAL(sbuf.size(),1);
else
BOOST_REQUIRE_EQUAL(sbuf.data()[0],char(0xca));
}
}
@@ -236,6 +244,8 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double)
v.push_back(-0.0);
v.push_back(1.0);
v.push_back(-1.0);
v.push_back(1.1);
v.push_back(-1.1);
v.push_back(numeric_limits<double>::min());
v.push_back(numeric_limits<double>::max());
v.push_back(nanf("tag"));
@@ -272,6 +282,12 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double)
BOOST_CHECK(std::isinf(val2));
else
BOOST_CHECK(fabs(val2 - val1) <= kEPS);
// check for compact storing of double
if (val1 == val1 && val1 >= double(std::numeric_limits<int64_t>::min()) && val1 <= double(std::numeric_limits<int64_t>::max()) && val1 == double(int64_t(val1)))
BOOST_REQUIRE_EQUAL(sbuf.size(),1);
else
BOOST_REQUIRE_EQUAL(uint8_t(sbuf.data()[0]),uint8_t(0xcb));
}
}