🚨 fix some warnings
This commit is contained in:
parent
a50a14088c
commit
5bfb27c865
3 changed files with 35 additions and 39 deletions
|
@ -11,4 +11,4 @@ add_custom_target(download_test_data
|
||||||
)
|
)
|
||||||
|
|
||||||
# create a header with the path to the downloaded test data
|
# create a header with the path to the downloaded test data
|
||||||
file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"")
|
file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"\n")
|
||||||
|
|
|
@ -46,20 +46,20 @@ void to_json(json&, pod) noexcept;
|
||||||
void to_json(json&, pod_bis);
|
void to_json(json&, pod_bis);
|
||||||
void from_json(const json&, pod) noexcept;
|
void from_json(const json&, pod) noexcept;
|
||||||
void from_json(const json&, pod_bis);
|
void from_json(const json&, pod_bis);
|
||||||
static json j;
|
static json* j;
|
||||||
|
|
||||||
static_assert(noexcept(json{}), "");
|
static_assert(noexcept(json{}), "");
|
||||||
static_assert(noexcept(nlohmann::to_json(j, 2)), "");
|
static_assert(noexcept(nlohmann::to_json(*j, 2)), "");
|
||||||
static_assert(noexcept(nlohmann::to_json(j, 2.5)), "");
|
static_assert(noexcept(nlohmann::to_json(*j, 2.5)), "");
|
||||||
static_assert(noexcept(nlohmann::to_json(j, true)), "");
|
static_assert(noexcept(nlohmann::to_json(*j, true)), "");
|
||||||
static_assert(noexcept(nlohmann::to_json(j, test{})), "");
|
static_assert(noexcept(nlohmann::to_json(*j, test{})), "");
|
||||||
static_assert(noexcept(nlohmann::to_json(j, pod{})), "");
|
static_assert(noexcept(nlohmann::to_json(*j, pod{})), "");
|
||||||
static_assert(not noexcept(nlohmann::to_json(j, pod_bis{})), "");
|
static_assert(not noexcept(nlohmann::to_json(*j, pod_bis{})), "");
|
||||||
static_assert(noexcept(json(2)), "");
|
static_assert(noexcept(json(2)), "");
|
||||||
static_assert(noexcept(json(test{})), "");
|
static_assert(noexcept(json(test{})), "");
|
||||||
static_assert(noexcept(json(pod{})), "");
|
static_assert(noexcept(json(pod{})), "");
|
||||||
static_assert(noexcept(j.get<pod>()), "");
|
static_assert(noexcept(j->get<pod>()), "");
|
||||||
static_assert(not noexcept(j.get<pod_bis>()), "");
|
static_assert(not noexcept(j->get<pod_bis>()), "");
|
||||||
static_assert(noexcept(json(pod{})), "");
|
static_assert(noexcept(json(pod{})), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,19 +95,19 @@ namespace udt
|
||||||
{
|
{
|
||||||
// templates because of the custom_json tests (see below)
|
// templates because of the custom_json tests (see below)
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void to_json(BasicJsonType& j, age a)
|
static void to_json(BasicJsonType& j, age a)
|
||||||
{
|
{
|
||||||
j = a.m_val;
|
j = a.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void to_json(BasicJsonType& j, const name& n)
|
static void to_json(BasicJsonType& j, const name& n)
|
||||||
{
|
{
|
||||||
j = n.m_val;
|
j = n.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void to_json(BasicJsonType& j, country c)
|
static void to_json(BasicJsonType& j, country c)
|
||||||
{
|
{
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
|
@ -124,54 +124,54 @@ void to_json(BasicJsonType& j, country c)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void to_json(BasicJsonType& j, const person& p)
|
static void to_json(BasicJsonType& j, const person& p)
|
||||||
{
|
{
|
||||||
j = BasicJsonType{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
|
j = BasicJsonType{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
|
||||||
}
|
}
|
||||||
|
|
||||||
void to_json(nlohmann::json& j, const address& a)
|
static void to_json(nlohmann::json& j, const address& a)
|
||||||
{
|
{
|
||||||
j = a.m_val;
|
j = a.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
void to_json(nlohmann::json& j, const contact& c)
|
static void to_json(nlohmann::json& j, const contact& c)
|
||||||
{
|
{
|
||||||
j = json{{"person", c.m_person}, {"address", c.m_address}};
|
j = json{{"person", c.m_person}, {"address", c.m_address}};
|
||||||
}
|
}
|
||||||
|
|
||||||
void to_json(nlohmann::json& j, const contact_book& cb)
|
static void to_json(nlohmann::json& j, const contact_book& cb)
|
||||||
{
|
{
|
||||||
j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
|
j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
|
||||||
}
|
}
|
||||||
|
|
||||||
// operators
|
// operators
|
||||||
bool operator==(age lhs, age rhs)
|
static bool operator==(age lhs, age rhs)
|
||||||
{
|
{
|
||||||
return lhs.m_val == rhs.m_val;
|
return lhs.m_val == rhs.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const address& lhs, const address& rhs)
|
static bool operator==(const address& lhs, const address& rhs)
|
||||||
{
|
{
|
||||||
return lhs.m_val == rhs.m_val;
|
return lhs.m_val == rhs.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const name& lhs, const name& rhs)
|
static bool operator==(const name& lhs, const name& rhs)
|
||||||
{
|
{
|
||||||
return lhs.m_val == rhs.m_val;
|
return lhs.m_val == rhs.m_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const person& lhs, const person& rhs)
|
static bool operator==(const person& lhs, const person& rhs)
|
||||||
{
|
{
|
||||||
return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
|
return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const contact& lhs, const contact& rhs)
|
static bool operator==(const contact& lhs, const contact& rhs)
|
||||||
{
|
{
|
||||||
return std::tie(lhs.m_person, lhs.m_address) ==
|
return std::tie(lhs.m_person, lhs.m_address) ==
|
||||||
std::tie(rhs.m_person, rhs.m_address);
|
std::tie(rhs.m_person, rhs.m_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const contact_book& lhs, const contact_book& rhs)
|
static bool operator==(const contact_book& lhs, const contact_book& rhs)
|
||||||
{
|
{
|
||||||
return std::tie(lhs.m_book_name, lhs.m_contacts) ==
|
return std::tie(lhs.m_book_name, lhs.m_contacts) ==
|
||||||
std::tie(rhs.m_book_name, rhs.m_contacts);
|
std::tie(rhs.m_book_name, rhs.m_contacts);
|
||||||
|
@ -182,19 +182,19 @@ bool operator==(const contact_book& lhs, const contact_book& rhs)
|
||||||
namespace udt
|
namespace udt
|
||||||
{
|
{
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void from_json(const BasicJsonType& j, age& a)
|
static void from_json(const BasicJsonType& j, age& a)
|
||||||
{
|
{
|
||||||
a.m_val = j.template get<int>();
|
a.m_val = j.template get<int>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void from_json(const BasicJsonType& j, name& n)
|
static void from_json(const BasicJsonType& j, name& n)
|
||||||
{
|
{
|
||||||
n.m_val = j.template get<std::string>();
|
n.m_val = j.template get<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void from_json(const BasicJsonType& j, country& c)
|
static void from_json(const BasicJsonType& j, country& c)
|
||||||
{
|
{
|
||||||
const auto str = j.template get<std::string>();
|
const auto str = j.template get<std::string>();
|
||||||
static const std::map<std::string, country> m =
|
static const std::map<std::string, country> m =
|
||||||
|
@ -210,25 +210,25 @@ void from_json(const BasicJsonType& j, country& c)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void from_json(const BasicJsonType& j, person& p)
|
static void from_json(const BasicJsonType& j, person& p)
|
||||||
{
|
{
|
||||||
p.m_age = j["age"].template get<age>();
|
p.m_age = j["age"].template get<age>();
|
||||||
p.m_name = j["name"].template get<name>();
|
p.m_name = j["name"].template get<name>();
|
||||||
p.m_country = j["country"].template get<country>();
|
p.m_country = j["country"].template get<country>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_json(const nlohmann::json& j, address& a)
|
static void from_json(const nlohmann::json& j, address& a)
|
||||||
{
|
{
|
||||||
a.m_val = j.get<std::string>();
|
a.m_val = j.get<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_json(const nlohmann::json& j, contact& c)
|
static void from_json(const nlohmann::json& j, contact& c)
|
||||||
{
|
{
|
||||||
c.m_person = j["person"].get<person>();
|
c.m_person = j["person"].get<person>();
|
||||||
c.m_address = j["address"].get<address>();
|
c.m_address = j["address"].get<address>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_json(const nlohmann::json& j, contact_book& cb)
|
static void from_json(const nlohmann::json& j, contact_book& cb)
|
||||||
{
|
{
|
||||||
cb.m_book_name = j["name"].get<name>();
|
cb.m_book_name = j["name"].get<name>();
|
||||||
cb.m_contacts = j["contacts"].get<std::vector<contact>>();
|
cb.m_contacts = j["contacts"].get<std::vector<contact>>();
|
||||||
|
@ -621,29 +621,29 @@ struct non_pod
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void to_json(BasicJsonType& j, const non_pod& np)
|
static void to_json(BasicJsonType& j, const non_pod& np)
|
||||||
{
|
{
|
||||||
j = np.s;
|
j = np.s;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename BasicJsonType>
|
template <typename BasicJsonType>
|
||||||
void from_json(const BasicJsonType& j, non_pod& np)
|
static void from_json(const BasicJsonType& j, non_pod& np)
|
||||||
{
|
{
|
||||||
np.s = j.template get<std::string>();
|
np.s = j.template get<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(small_pod lhs, small_pod rhs) noexcept
|
static bool operator==(small_pod lhs, small_pod rhs) noexcept
|
||||||
{
|
{
|
||||||
return std::tie(lhs.begin, lhs.middle, lhs.end) ==
|
return std::tie(lhs.begin, lhs.middle, lhs.end) ==
|
||||||
std::tie(rhs.begin, rhs.middle, rhs.end);
|
std::tie(rhs.begin, rhs.middle, rhs.end);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const non_pod& lhs, const non_pod& rhs) noexcept
|
static bool operator==(const non_pod& lhs, const non_pod& rhs) noexcept
|
||||||
{
|
{
|
||||||
return lhs.s == rhs.s;
|
return lhs.s == rhs.s;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream& os, small_pod l)
|
static std::ostream& operator<<(std::ostream& os, small_pod l)
|
||||||
{
|
{
|
||||||
return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end;
|
return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end;
|
||||||
}
|
}
|
||||||
|
@ -691,8 +691,6 @@ struct another_adl_serializer
|
||||||
|
|
||||||
TEST_CASE("custom serializer that does adl by default" * doctest::test_suite("udt"))
|
TEST_CASE("custom serializer that does adl by default" * doctest::test_suite("udt"))
|
||||||
{
|
{
|
||||||
using json = nlohmann::json;
|
|
||||||
|
|
||||||
auto me = udt::person{{23}, {"theo"}, udt::country::france};
|
auto me = udt::person{{23}, {"theo"}, udt::country::france};
|
||||||
|
|
||||||
json j = me;
|
json j = me;
|
||||||
|
@ -706,8 +704,6 @@ TEST_CASE("custom serializer that does adl by default" * doctest::test_suite("ud
|
||||||
|
|
||||||
TEST_CASE("different basic_json types conversions")
|
TEST_CASE("different basic_json types conversions")
|
||||||
{
|
{
|
||||||
using json = nlohmann::json;
|
|
||||||
|
|
||||||
SECTION("null")
|
SECTION("null")
|
||||||
{
|
{
|
||||||
json j;
|
json j;
|
||||||
|
|
Loading…
Reference in a new issue