'C++20 in Qt Creator

I want to use std::source_location in Qt Creator, I've built the GCC 11.1 and checked it using g++ main.cpp -std=c++20 that it works. I've created a kit in Qt Creator to use this compiler and I was able to build it by adding:

QMAKE_CXXFLAGS += -std=c++2a

It works and I can even debug it without issues but Qt keeps saying that I have an error (which is not an error because the build passes):

error: no type named 'source_location' in namespace 'std'

Is there something I can do to fix this?



Solution 1:[1]

It's all about clang's static analysis. The gcc's (or strictly libstdc++'s) header <source_location> contains following guard:

#if __cplusplus > 201703L && __has_builtin(__builtin_source_location)

The guard doesn't allow clang to work as it doesn't support __builtin_source_location. Please follow the clang PR that fixes this issue.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1