Is there a type traits template which returns the base type of a given type. By base type I mean the type with all value modifiers, const, volatile, etc. strip
try std::decay. It mimicks what happens when you pass arguments to functions by value: strips top-level cv-qualifiers, references, converts arrays to pointers and functions to function pointers.