VC ++ позволяет использовать константные типы для контейнеров STL. Почему?

Контейнеры STL требуют, чтобы сохраненные значения были копируемыми, создаваемыми и назначаемыми. const T, очевидно, не является присваиваемым типом для любого T, но я попытался использовать его (просто из любопытства) и обнаружил, что он компилируется и, более того, ведет себя как назначаемый тип.

vector<const int> v(1);
v[0] = 17;

Это успешно работает в Visual Studio 2008 и присваивает v [0] значение 17.

12
задан James McNellis 9 February 2011 в 02:19
поделиться