Question

Is this conversion type safe

vector<int*> a;
const vector<const int*>& b = reinterpret_cast<const vector<const int*>&>(a);

A static cast obviously doesnt work in this case because the template argument is changing. But by doing this reinterpret cast, I am just adding constness to essentially the same type. So should this be safe for all practical purposes?

Was it helpful?

Solution

Like any use of reinterpret_cast to convert a reference to an unrelated type, it gives undefined behaviour, and so is not safe unless you define "safe" to mean "works on my compiler".

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top