Intellisense issue with C++17 standard

Hi,

 

I get a red underline that says: "Ambiguous symbol 'std::vector<int>'". This was not the case before upgrading my visual studio to the latest(15.8).

The code compiles fine.

Here is the smallest possible way to reproduce this issue with the latest standard. (/std:c++latest compile flag)

 

#include <memory>
#include <vector>

int main()
{
    auto bla = std::vector<std::string>(); //underline saying: "Ambiguous symbol 'std::vector<std::string>'"
    std::shared_ptr<int> bla;//underline saying: "Ambiguous symbol 'std::shared_ptr<int>'"
    auto bla1 = std::make_shared<std::vector<int>>(); //underline saying: "Ambiguous symbol 'std::vector<int>'"
    
    return 0;
}

If I take the flag out to use the latest standard, the intellisense issue goes away:

I'm not sure what other information I can provide to help?

 

Thanks!

2 comments
Comment actions Permalink

Same thing happens for me also when '/std:c++17' is used.

By analyzing headers I see that it has some overloads (possibly new or changed in VS 15.8) of many containers and other STL stuff under '#if _HAS_CXX17 ... #endif' conditions. Same warning shows up if I run "Inspect this -> Code issues" on such file.

If Resharper is turned off then no warning is shown.

 

0
Comment actions Permalink

Hello,

R++ 2018.1 does not support class template argument deduction, and gets confused by deduction guides in the standard library.

Please upgrade to R++ 2018.2 which should be out next week, or install the release candidate from https://www.jetbrains.com/resharper/eap/.

Thanks!

1

Please sign in to leave a comment.