Код 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.

0 ответов

Другие вопросы по тегам