How to use std::remove_const in C ++

In this post, we are going to learn about the standard function defined inside STL(standard template library) from <type_traits> header file std::remove_const. The std::remove_const returns type without const qualified. Const qualified is the term in C++ where you can apply a const keyword before or after the type. So neither value of a pointed variable may change nor the address of that pointed variable.

Syntax:

template <class New>
std::remove_const;
call function:
std::remove_const<New>::value

The template takes only a single parameter i.e Trait class to check wheater Trait class is using a const qualifier. It returns the boolean value depending upon the trait class whether it consists of a const qualifier. If so, it returns a true value if not it returns a false value.

#include<iostream>
#include<type_traits>
using namespace std; 
  
int main() 
{ 

    typedef std::remove_const<int>::type first_variable; 
    
    typedef std::remove_const<int* const>::type second_variable;
    
 
    
    cout<<std::boolalpha; 
  
    cout<<"Does first_variable contain const int? "
        <<is_same<int, first_variable>::value 
        <<endl; 
  
   
  
    cout<<"Does second_variable contain const int? "
        <<is_same<int, second_variable>::value 
        <<endl; 
    return 0; 
}

In the above program, we have included <type_traits> header file so that our std::remove_const can be explored. then we have used the typedef method and called an std::remove_const method over int type over first_variable thus it should return a true value.

similarly, we have called remove_const over int* const for type second_variable and the value of both address pointer cannot be changed and returns false bool value.

Thus this standard template library from type_traits header file returns the True value for the function which does not have const qualifiers and False if it has the const qualifiers.

OUTPUT:

Does first_variable contain const int? true
Does second_variable contain const int? false

Also read: Iterator library in C++ STL

Leave a Reply

Your email address will not be published. Required fields are marked *