После прочтения этого поста Я попробовал это
#include <iostream>
#include <vector>
int main()
{
const int x = 5;
// x = 200; Not possible, of course.
std::vector<const int> xVector = { 5 };
xVector[0] = 200;
std::cout << xVector[0]; // 200, no surprise.
}
Это компилируется в Visual Studio 2017. Но разве это поведение не определено, как в UB ?
Бонусные вопросы: по каким техническим причинам std::vector<const int>
- это не просто вектор немодифицируемых int
s?