const_cast conversion
From Cppreference
Converts between types when no implicit conversion exists.
Contents |
[edit] Syntax
const_cast < new_type > ( expression ) | |||||||||
All expressions return an value of type new_type.
[edit] Explanation
All above conversion operators compute the value of expression, convert it to new_type and return the resulting value. Each conversion can take place only in specific circumstances or the program is ill formed.
Casts type to an equivalent type with different cv-qualifiers.
This section is incomplete |
[edit] Keywords
[edit] Example
#include <iostream> struct type { type() :i(3) {} void m1(int v) const { // this->i = v; // compile error: assignment of member 'type::i' in read-only object const_cast<type*>(this)->i = v; } int i; }; int main() { int i = 3; const int& cref_i = i; const_cast<int&>(cref_i) = 4; std::cout << "i = " << i << '\n'; type t; t.m1(4); std::cout << "type::i = " << t.i << '\n'; }
Output:
i = 4