Ubuntu 20.04 上缺少 C++20 headers with Clang 13

Missing C++20 headers on Ubuntu 20.04 with Clang 13

我已经安装了 clang-13,但是当我尝试编译使用 C++20 headers 的程序时,我缺少 header 个错误。

#include <numeric>  
#include <numbers> // missing

似乎 CMake 使用系统 headers(来自 ubuntu 附带的旧 GCC headers)。我如何说服它改用 Clang 的 headers?

Numbers header 是 C++20 的一部分 https://en.cppreference.com/w/cpp/header/numbers

安装最新版本的 g++ 解决了我的问题。例如,g++-11 是目前最新的版本。要在 Ubuntu 上安装它:

添加工具链ppa确保最新版本可用:

sudo add-apt-repository --update -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -y

然后安装

sudo apt-get -y --fix-broken install gcc-11 g++-11

您可以在此处查看最新版本: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test