-
-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Closed
Labels
kind: bugrelease item: 🔨 further changesolution: proposed fixa fix for the issue has been proposed and waits for confirmationa fix for the issue has been proposed and waits for confirmation
Milestone
Description
The snippet to reproduce the error:
struct A {
nlohmann::json j;
auto has_entry(std::string n) {
return j.find(n) != j.end() ? true : false;
}
};what the error looks like:
src/json.hpp:1073:20: error: 'm_it' is a private member of 'nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long long,
double, std::allocator>::const_iterator'
result.m_it.object_iterator = m_value.object->find(key);
^This is not catched by the unit tests because they are compiled by defining private=public.
A "better" way to do that could be to have a separate file only for those tests that "need" private=public.
This might be clang 3.6 specific, since I'm the only one who seems to be having problems.
I worked around this issue by including the library as follows:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wfloat-equal"
#pragma clang diagnostic ignored "-Wdeprecated"
#define private public
#include <json.hpp>
#define private private
#pragma clang diagnostic popReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind: bugrelease item: 🔨 further changesolution: proposed fixa fix for the issue has been proposed and waits for confirmationa fix for the issue has been proposed and waits for confirmation