void foo(int* x) { (*x)++; } void bar(const int* x) { //foo(x); // compiler error foo(const_cast(x)); // succeeds } int main(int argc, char** argv) { int x = 7; bar(&x); return 0; }