platformio-core
platformio-core copied to clipboard
Visual Studio IntelliSense does not recognize basic using std::xyz statements
What kind of issue is this?
- [X] PlatformIO Core. If you’ve found a bug, please provide an information below.
Configuration
Operating system: Windows 10 x64
PlatformIO Version (platformio --version):
Description of problem
When telling PlatformIO to generate project files for Visual Studio and one opens the project file in Visual Studio, it fails to recognize basic C++ namespaces. To my knowledge this is not the same issue as observed in https://github.com/platformio/platformio-core/issues/662#issuecomment-220092057 and https://docs.platformio.org/en/latest//integration/ide/visualstudio.html#intellisense-errors because
IntelliSense does not understand GCC-specific definitions.
Does not apply to the code
using std::min;
using std::max;
using std::round;
using std::isinf;
using std::isnan;
that is causing IntelliSense errors.

Error message reads: "Namespace std has no member isnan".
So it seems to me that the Visual Studio project template is not correct and misses some setting (e.g., C++ version).
Steps to Reproduce
- Download project https://github.com/maxgerhardt/pio-visualstudio-cpp17
- Re-initialize VisualStudio project files with
pio init --ide=visualstudio - Open generated solution file in Visual Studio
- Follow Arduino.h (Ctrl+Click)
- Observe errrors
Actual Results
Visual Studio does not recognize C++ (17) standard namespaces within
Expected Results
Intellisense regarding basic C++ features works.
If problems with PlatformIO Build System:
Refer example project.
Additional info
Compilation of the project which uses C++17 features works as normal with pio run.