Является std :: vectorнеопределенное поведение? - PullRequest
0 голосов
/ 14 мая 2018

После прочтения этого поста Я попробовал это

#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?

...