C ++ 11, GCC [OK], VS [FAILS], ICC [??]

I am trying to create a CPP project that uses C ++ 11 features. With GCC-4.8.3 and specifying -std = C ++ 11, the code has no error.

Visual Studio 2013, as you know, does not fully support C ++ 11. Instead, I installed Intel Parallel Studio XE 2015, which supports C ++ 11.

Now, in visual studio, I pointed out the Intel compiler to bypass the VS compiler. See Figure below.

enter image description here

I have also included C ++ - 11 support below

enter image description here

However, I am getting some errors and the stack trace shows that the errors are coming from Microsoft Visual Studio header files.

It seems that the VS compiler has not been completely replaced by the Intel compiler.

The full output is available at pastebin .

I know the full output is long, so here is the trail of code that caused one of the errors. I think the two errors are similar.

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

Error in line

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

      

Any idea to fix this? Why doesn't it match the Intel compiler header files and doesn't match the VS header files that I know C ++ 11 doesn't support?

~~~~~~~~~~~~~~~~~~~~ UPDATE ~~~~~~~~~~~~~~~~~~~~~

Testing Visual Studio 2015 RC version, codes are generated successfully without using Intel compiler.

+3


source to share





All Articles