For those of you developing code you hope to merge into VTK,
-
do not include
using namespace nlohmannin your code. -
avoid
using namespace …in general. -
however it is OK to use namespaces with string-literal and placeholder operators in them (e.g.,
using namespace std::literals,using namespace boost::lambda::placeholders).
The issue is C++ promotion rules end up causing ambiguous lookups for any enum comparison operators (particularly in gcc 4.8.5, but using namespace is something to generally avoid anyways)
std::literals is meant to be used that way and isnt going to dump ADL-confusing symbols on you; the same goes for boost::lambda::placeholders or whatever gave _1 and the like for boost::bind.