In general, libc++ uses the negative for missing capabilities. _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_HAS_NO_ADVANCED_SFINAE _LIBCPP_HAS_NO_VARIADICS _LIBCPP_HAS_NO_TRAILING_RETURN I would prefer to keep this convention. http://reviews.llvm.org/D3969