What can and can’t I specialize in the std namespace?

Quoting loosely from the standard: numeric_limits shall not be specialized for non-arithmetic standard types (e.g. complex<T>) “[S]pecializations of shared_ptr shall be CopyConstructible, CopyAssignable, and LessThanComparable [and] convertible to bool.” “Specializations of weak_ptr shall be CopyConstructible and CopyAssignable.” “[T]emplate specializations [of std::hash] shall meet the requirements of class template hash.” Anything in <type_traits>: “The behavior of … Read more