add constraints for variadic json_ref constructors

Fixes #1292
This commit is contained in:
Théo DELRIEU 2018-10-12 10:54:58 +02:00
parent e426219256
commit 11fecc25af
No known key found for this signature in database
GPG key ID: A5A505438C20539A
3 changed files with 33 additions and 8 deletions

View file

@ -33,6 +33,14 @@ SOFTWARE.
#include <nlohmann/json.hpp>
using nlohmann::json;
#if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464
#define JSON_HAS_CPP_17
#endif
#ifdef JSON_HAS_CPP_17
#include <variant>
#endif
#include "fifo_map.hpp"
#include <fstream>
@ -1649,4 +1657,12 @@ TEST_CASE("regression tests")
CHECK(diffs.size() == 1); // Note the change here, was 2
}
#ifdef JSON_HAS_CPP_17
SECTION("issue #1292 - Serializing std::variant causes stack overflow")
{
static_assert(
not std::is_constructible<json, std::variant<int, float>>::value, "");
}
#endif
}