2025_WSL2_Ubuntu20.04_C++20_concept 环境配置

需要使用 c++20 新特性 concept 泛型约束

记录如何在 wsl2 里面配置环境,如果需要源工程,可以私发

背景:使用 CMakeLists.txt 配置整个工程

从官网 https://gcc.gnu.org/projects/cxx-status.html#cxx20 可以看到 concept 受 g++10 支持

这里注意虽然 "Available in GCC" 表示的是 GCC,但这里应该理解为 GCC 套件的整体版本要求,使用的是 c++ 所以对应的应该是更新 g++ 前端和对应的 libstdc++ 库

步骤1:安装并切换到 g++10

复制代码
sudo apt update
sudo apt install -y g++-10 build-essential
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100

步骤2:重新Build

复制代码
cmake -S ~/Project/CPP -B ~/Project/CPP/build -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build ~/Project/CPP/build

步骤3:验证

复制代码
#include <bits/stdc++.h>
#include <concepts>

template<typename T>
concept LessComparable = requires(T a, T b) {
    {a < b} -> std::convertible_to<bool>;
};

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

可支持编译执行这段代码即可