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: