C++20 intellisense support

Sysprogs forums Forums VisualGDB C++20 intellisense support

This topic contains 4 replies, has 2 voices, and was last updated by  oto313 2 weeks, 2 days ago.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #33118

    oto313
    Participant

    Hi,

    Does clang intellisense support C++20? What version of clang intellisense is bundled with VisualGDB?

    Thanks

    #33120

    support
    Keymaster

    Hi,

    Our Clang IntelliSense uses Clang 6.0 that supports many of the C++20 features. That said, since it uses the headers directly from your toolchain, the toolchain must support C++20 as well and it should be selected via the “language standard” setting in project properties, as many toolchains default to a lower C++ language standard version.

    #33139

    oto313
    Participant

    Hi,

    I have problem when I switch to c++2a. It says for example “Error: unknown type name “‘BulkMotorSettings’; did you mean ‘std::BulkMotorSettings'” see attachment. For every type included from another file it says “Error: unknown type name ‘Class’; did you mean ‘std::Class”. When I switch back to c++17 it works as expected. Do you know where could be a problem? The project is compile successfully with c++17 and with c++2a. There is problem only with intellisense

     

    Thanks

    Attachments:
    You must be logged in to view attached files.
    #33151

    support
    Keymaster

    Hi,

    If the compilation is working, most likely some parts of the platform headers use C++20 features that are not yet supported by our Clang IntelliSense engine. We are planning to release a major update to the engine in the next few months, so it should take care of it.

    Until then, the only way to troubleshoot such issues would be to narrow them down to a specific broken identifier, checking where it is actually defined, and trying to move the definition around to see what triggers the issue. Most likely, IntelliSense stops parsing when it encounters a very specific language construct that it cannot work around, so the entities declared after it are not recognized. If you can locate a specific construct causing it, you can try wrapping it with #ifndef __SYSPROGS_CODESENSE__ so that the IntelliSense engine will ignore it.

    #33162

    oto313
    Participant

    Ok thanks I will wait for next release. Hope it will be soon.

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.