consider the following example for version 0.6.0-rc2 under GCC 4.8.1 --std=C++11 on Linux
int main(int argc, char** argv) { std::uint32_t u32 = 10; std::uint64_t u64 = 10; Json::Value val32 = u32; // does not compile // Json::Value(std::uint64_t) is ambiguous Json::Value val64 = u64; return 0; }
There are various other common statements where the same problem manifests.
It appears that the definition for Json::UInt64 is incompatible with std::uint64_t for the purpose of resolving ctor signatures (even though direct assignments between std::uint64_t and Json::UInt64 are fine).
Seems like Json::UInt64 should map to std::uint64_t if it is defined
See discussions here:
https://github.com/open-source-parsers/jsoncpp/pull/66
https://github.com/open-source-parsers/jsoncpp/issues/64
If you have more ideas, please open a new ticket:
* https://github.com/open-source-parsers/jsoncpp/issues/new
Diff: