The following new test case fails to compile with at least Visual Studio 2015 14.0.25431.01 Update 3, and Visual Studio 2019 16.5.0. Related to #167.
nlohmann-json\test\thirdparty\doctest\doctest.h(782,1): error C2593: 'operator <<' is ambiguous
nlohmann-json\single_include\nlohmann/json.hpp(20642,26): message : could be 'std::ostream &nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>::operator <<(std::ostream &,const nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer> &)' [found using argument-dependent lookup]
nlohmann-json\single_include\nlohmann/json.hpp(20642,26): message : or 'std::ostream &nlohmann::basic_json<std::map,std::vector,std::string,bool,int32_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>::operator <<(std::ostream &,const nlohmann::basic_json<std::map,std::vector,std::string,bool,int32_t,uint64_t,double,std::allocator,nlohmann::adl_serializer> &)' [found using argument-dependent lookup]
nlohmann-json\test\thirdparty\doctest\doctest.h(782,1): message : while trying to match the argument list '(std::ostream, const T)'
with
[
T=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\thirdparty\doctest\doctest.h(788): message : see reference to class template instantiation 'doctest::detail::has_insertion_operator_impl::has_insertion_operator<T>' being compiled
with
[
T=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\thirdparty\doctest\doctest.h(828): message : see reference to class template instantiation 'doctest::detail::has_insertion_operator<T>' being compiled
with
[
T=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\thirdparty\doctest\doctest.h(854): message : see reference to class template instantiation 'doctest::StringMaker<T>' being compiled
with
[
T=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\thirdparty\doctest\doctest.h(1011): message : see reference to function template instantiation 'doctest::String doctest::toString<L>(const T &)' being compiled
with
[
L=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>,
T=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\thirdparty\doctest\doctest.h(1159): message : see reference to function template instantiation 'doctest::String doctest::detail::stringifyBinaryExpr<nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>,R>(const L &,const char *,const R &)' being compiled
with
[
R=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>,
L=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\src\foo.cpp(8): message : see reference to function template instantiation 'doctest::detail::Result doctest::detail::Expression_lhs<const nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>> &>::operator ==<nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>>(const R &)' being compiled
with
[
R=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
nlohmann-json\test\src\foo.cpp(8): message : see reference to function template instantiation 'doctest::detail::Result doctest::detail::Expression_lhs<const nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>> &>::operator ==<nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>>(const R &)' being compiled
with
[
R=nlohmann::json_pointer<nlohmann::basic_json<std::map,std::vector,std::string,bool,int64_t,uint64_t,double,std::allocator,nlohmann::adl_serializer>>
]
The following new test case fails to compile with at least Visual Studio 2015 14.0.25431.01 Update 3, and Visual Studio 2019 16.5.0. Related to #167.
The error message is: