Question: Specializing types from namespace std based on user-defined concepts
It is written in many places (for example here), that specialisations of types from namespace std
are only allowed if the specialisation "depends on user-defined types". Does this definition in the standard explicitly exclude to specialise std
types based on user-defined concepts?
For example, is this allowed?
namespace std { template<MyConcept T> struct hash<T> { size_t hash(T const& v) const { ... } }; }
This would greatly simplify many specialisations in my code where I have a lot of different c++ error but similar classes adhering to the same concept which can be hashed all in the same way.