For those of you developing code you hope to merge into VTK,
-
do not include
using namespace nlohmann
in 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
.