Код C++11, GCC [OK], VS [FAILS], ICC[??]
Я пытаюсь построить проект CPP, который использует функции C++11. С GCC-4.8.3 и указанием -std= C++11 код не содержит ошибок.
Visual Studio 2013, как вы знаете, не полностью поддерживает C++11. Вместо этого я установил Intel Parallel Studio XE 2015, который поддерживает C++11.
Теперь в visual studio я указал компилятор intel для обхода компилятора VS. Смотрите рисунок ниже.
Я также включил поддержку C++-11, как показано ниже
Однако я получаю некоторые ошибки, и трассировка стека показывает, что ошибки происходят из заголовочных файлов Microsoft Visual Studio.
Похоже, компилятор VS не был полностью заменен компилятором Intel.
Полный вывод доступен на pastebin.
Я знаю, что полный вывод является длинным, так что вот трассировка кода, которая вызвала одну из ошибок. Две ошибки похожи, я думаю.
1)
Sequitur<char> s; char temp_char;
s.push_back(temp_char);
2)
template<typename Type>
void Sequitur<Type>::push_back(Type s){
//add new symbol:
Symbol * val = sequence_end->insertBefore(new Value(s));
if(++length > 1) {
auto one_from_end = val->prev();
linkMade(one_from_end);
}
}
3)
template<typename Type>
void Sequitur<Type>::linkMade(Symbol * first) {
Symbol * match_location = findAndAddDigram(first);
}
4)
template<typename Type>
Symbol * Sequitur<Type>::findAndAddDigram(Symbol * first) {
auto out_pair = digram_index.emplace(makeDigramPair(first),first);
}
В auto
линия, ошибка
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\utility(155): error : no instance of constructor "jw::SymbolWrapper::SymbolWrapper" matches the argument list
argument types are: (jw::SymbolWrapper)
: first(_STD forward<_Other1>(_Right.first)),
^
detected during:
instantiation of "std::pair<_Ty1, _Ty2>::pair(std::pair<_Other1, _Other2> &&) [with _Ty1=jw::SymbolWrapper, _Ty2=jw::SymbolWrapper, _Other1=jw::SymbolWrapper, _Other2=jw::SymbolWrapper, <unnamed>=void]" at line 142
Есть идея исправить это? Почему он не следует заголовочным файлам компилятора Intel и неправильно следует заголовочным файлам VS, которые, как я знаю, не поддерживают C++11?
~~~~~~~~~~~~~~~~~~~~ ОБНОВЛЕНИЕ ~~~~~~~~~~~~~~~~~~~~
При тестировании Visual Studio 2015 RC edition, коды успешно собираются без использования компилятора Intel.