Open In App

std::remove_const in C++ with Examples

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:

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;
}

Output:
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/


Article Tags :