Является ли этот тип конверсии безопасным
vector<int*> a;
const vector<const int*>& b = reinterpret_cast<const vector<const int*>&>(a);
Статическое приведение, очевидно, не работает в этом случае, потому что аргумент шаблона изменяется. Но, выполняя это переосмысление, я просто добавляю константность к тому же типу. Так должно ли это быть безопасно для всех практических целей?
Как и любое использование reinterpret_cast
чтобы преобразовать ссылку в несвязанный тип, она дает неопределенное поведение и поэтому небезопасна, если вы не определите «безопасно», что означает «работает на моем компиляторе».
Других решений пока нет …