Ошибка компилятора для const vector <const T> в VS 2015, но не VS 2013
Следующий код компилируется с использованием Visual Studio 2013.
#include <vector>
#include <string>
int main()
{
const std::string constString("fred");
const std::vector<const std::string> myVector{ constString };
}
Если я попытаюсь скомпилировать его с помощью Visual Studio 2015, будет сообщено следующее сообщение:
1>xmemory0(587): error C2338: The C++ Standard forbids containers of const elements because allocator<const T> is ill-formed.
Я видел разные сообщения, и в частности этот Разрешает ли С++ 11 вектор < const T > ? около vector<const T>
и почему он не но я не понимаю. Однако в приведенном выше примере сам вектор является const.
Может кто-нибудь объяснить? Неужели VS 2013 неправильно скомпилировать его?