msvc 15.3.1 проблема с компилятором
Я обнаружил странное поведение (вероятно, проблему) при попытке скомпилировать простое приложение с MS VC 15.3.1 (после применения VC 2017 Upgrade 3):
#include <iostream>
#include <algorithm>
#include <string>
// compiles if commenting out the line below
#include <vector>
#include <list>
class A
{
std::string s;
public:
A(const std::string& str) : s(str)
{
}
A(A&& other)
{
// compiles if changing std::swap<std::string>() to std::swap()
std::swap<std::string>(s, other.s);
}
};
int main(int argc, char *argv[])
{
return 0;
}
компилятор выдает ошибку:
1>d:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.11.25503\include\vector(2131):
error C2039: '_Alloc': is not a member of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
Этот код без проблем компилируется с наборами инструментов VC 15.2, VS2015 и VS2013.