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
I would probaby define a type alias such as:
template
using base_type = typename std::remove_cv::type>::type;
Notice, that here R. Martinho Fernandes proposes the name Unqualified
for such a type alias.
The standard type trait std::decay, on the other hand does the same as the above and something more for array and function types, which may or may not be what you want.