Я использую VS 2015 (Update 3) скомпилировать следующий код:Почему VC++ компилирует код, пока clang его нет?
#include <codecvt>
#include <cctype>
#include <functional>
int main()
{
std::function<int(int)> fn = std::isspace;
}
Если я использую VC++, чтобы скомпилировать его, это нормально. Однако, если изменить компилятор Visual Studio 2015 - Clang with Microsoft CodeGen (v140_clang_c2)
в Visual Studio, лязг сообщает об ошибке:
main.cpp(7,26): error : no viable conversion from '' to 'std::function'
std::function fn = std::isspace;
более удивительно, если комментарии первую строку следующим образом, лязг также будет хорошо.
//#include <codecvt> // now clang feels happy
#include <cctype>
#include <functional>
int main()
{
std::function<int(int)> fn = std::isspace;
}
В чем причина?