diff --git a/.github/depends/zlib.sh b/.github/depends/zlib.sh index 1afe6afac..c69881481 100755 --- a/.github/depends/zlib.sh +++ b/.github/depends/zlib.sh @@ -27,10 +27,10 @@ while getopts "b:t:p:" c; do done mkdir $prefix || exit 1 -wget https://zlib.net/current/zlib.tar.gz || exit 1 -mkdir zlib -tar -xf zlib.tar.gz -C zlib || exit 1 -cd $(dirname $(find zlib -name zlib.h)) + +wget https://zlib.net/zlib-1.3.1.tar.gz || exit 1 +tar -xf zlib-1.3.1.tar.gz || exit 1 +cd zlib-1.3.1 build() { diff --git a/CHANGELOG.md b/CHANGELOG.md index 73199b017..68efc57c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 2024-04-02 version 6.1.1 + * Fix compilation error when std::variant has the same types (#1112) + * Improve CI (#1090, #1110) + * Fix to avoid common function name's (has_as::check) ambiguity/conflict with other libraries' macros (#1085) + # 2023-07-08 version 6.1.0 * Remove dependency on boost in chrono.hpp (#1076) * Add support for std::variant behavior (#1075) diff --git a/QUICKSTART-CPP.md b/QUICKSTART-CPP.md index fd4fadbc3..a9dc8fd8d 100644 --- a/QUICKSTART-CPP.md +++ b/QUICKSTART-CPP.md @@ -12,7 +12,7 @@ Same as QuickStart for C Language. ## First program -Include `msgpack.hpp` header and link `msgpack` library to use MessagePack on your program. +Include `msgpack.hpp` header to use MessagePack on your program. ```cpp #include diff --git a/README.md b/README.md index cf578c540..31d29e800 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ `msgpack` for C++ =================== -Version 6.1.0 [![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 6.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) [![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. diff --git a/appveyor.yml b/appveyor.yml index f730f79af..2e71a4f71 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 6.1.0.{build} +version: 6.1.1.{build} branches: only: @@ -23,9 +23,11 @@ environment: boost_subdir: lib32-msvc-14.0 build_script: - ps: | - appveyor DownloadFile https://zlib.net/current/zlib.tar.gz -FileName zlib.tar.gz - 7z x zlib.tar.gz 2> $null - 7z x zlib.tar 2> $null + + appveyor DownloadFile http://zlib.net/zlib-1.3.1.tar.gz -FileName zlib-1.3.1.tar.gz + 7z x zlib-1.3.1.tar.gz 2> $null + 7z x zlib-1.3.1.tar 2> $null + cd zlib-1.3.1 md build diff --git a/include/msgpack/v1/adaptor/cpp17/variant.hpp b/include/msgpack/v1/adaptor/cpp17/variant.hpp index 2ddb6b6e6..d96a15eb0 100644 --- a/include/msgpack/v1/adaptor/cpp17/variant.hpp +++ b/include/msgpack/v1/adaptor/cpp17/variant.hpp @@ -40,11 +40,11 @@ Variant construct_variant( std::index_sequence ) { if constexpr(sizeof...(Ts) == 0) { - return object.as(); + return Variant{std::in_place_index, object.as()}; } else { if (index == current_index) { - return object.as(); + return Variant{std::in_place_index, object.as()}; } return construct_variant( index, diff --git a/include/msgpack/version_master.hpp b/include/msgpack/version_master.hpp index ad76f7373..e844bcd15 100644 --- a/include/msgpack/version_master.hpp +++ b/include/msgpack/version_master.hpp @@ -1,3 +1,3 @@ #define MSGPACK_VERSION_MAJOR 6 #define MSGPACK_VERSION_MINOR 1 -#define MSGPACK_VERSION_REVISION 0 +#define MSGPACK_VERSION_REVISION 1 diff --git a/test/msgpack_cpp17.cpp b/test/msgpack_cpp17.cpp index b20c04ccd..be3d9d410 100644 --- a/test/msgpack_cpp17.cpp +++ b/test/msgpack_cpp17.cpp @@ -474,6 +474,28 @@ BOOST_AUTO_TEST_CASE(variant_pack_unpack_as) { oh.get().as >(); BOOST_CHECK(val1 == val2); BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + + { + std::stringstream same_ss; + std::variant same_expected{std::in_place_index<2>, 2}; + msgpack::pack(same_ss, same_expected); + std::string const& same_str = same_ss.str(); + msgpack::object_handle same_oh = + msgpack::unpack(same_str.data(), same_str.size()); + std::variant same_actual = same_oh->as>(); + BOOST_CHECK(same_expected == same_actual); + } + + { + std::stringstream same_ss; + std::variant same_expected{std::in_place_index<1>, 2}; + msgpack::pack(same_ss, same_expected); + std::string const& same_str = same_ss.str(); + msgpack::object_handle same_oh = + msgpack::unpack(same_str.data(), same_str.size()); + std::variant same_actual = same_oh->as>(); + BOOST_CHECK(same_expected == same_actual); + } } BOOST_AUTO_TEST_CASE(variant_with_zone) {