template <class T> struct is_const;
12345678910111213
// is_const example #include <iostream> #include <type_traits> int main() { std::cout << std::boolalpha; std::cout << "is_const:" << std::endl; std::cout << "int: " << std::is_const<int>::value << std::endl; std::cout << "const int: " << std::is_const<const int>::value << std::endl; std::cout << "const int*: " << std::is_const<const int*>::value << std::endl; std::cout << "int* const: " << std::is_const<int* const>::value << std::endl; return 0; }
is_const: int: false const int: true const int*: false int* const: true