The std::remove_const template of C++ STL is present in the <type_traits> header file. The std::remove_const template of C++ STL is used to get the type T without const qualification. It return the boolean value true if T is without const qualified, otherwise return false. Below is the syntax for the same:
Header File:
#include<type_traits>
Template Class:
template <class T> struct remove_const;
Syntax:
std::remove_const<T>::value
Parameter: This template std::remove_const accepts a single parameter T(Trait class) to check whether T is without const qualified or not.
Return Value: The template std::remove_const returns a boolean value:
- True: If type T is without const qualified.
- False: If type T is with const qualified.
Below is the program to demonstrate std::remove_const in C++:
Program:
// C++ program to illustrate // std::remove_const #include <bits/stdc++.h> #include <type_traits> using namespace std;
// Driver Code int main()
{ // Declare variable of type
// int, const int, const int*,
// int * const and const int&
typedef remove_const< int >::type A;
typedef remove_const< const int >::type B;
typedef remove_const< const int *>::type C;
typedef remove_const< int * const >::type D;
typedef remove_const< const int &>::type E;
cout << std::boolalpha;
// Checking const of the above
// declared variables
cout << "A is without const int? "
<< is_same< int , A>::value
<< endl;
cout << "B is without const int? "
<< is_same< int , B>::value
<< endl;
cout << "C is without const int? "
<< is_same< int , C>::value
<< endl;
cout << "D is without const int? "
<< is_same< int , D>::value
<< endl;
cout << "E is without const int? "
<< is_same< const int , E>::value
<< endl;
return 0;
} |
A is without const int? true B is without const int? true C is without const int? false D is without const int? false E is without const int? false
Reference: http://www.cplusplus.com/reference/type_traits/remove_const/