几个小步骤丝滑升级 C++ 23的编译器
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update apt install build-essential apt install gcc-11 apt install g++-11 ln -sf g++-11 c++ ln -sf gcc-11 cc ln -sf gcov-11 gcov ln -sf gcc-11 x86_64-linux-gnu-gcc ln -sf g++-11 x86_64-linux-gnu-g++
软连接必须做要不会出现错误:gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
测试编译下:
#include <iostream> #include <string> #include <utility> template<typename T> class Base{ public: Base() = default; explicit Base(T v) :var(std::move(v)){} Base &operator = (const T &v){ var = v; return *this; } decltype(auto) get(){ return var; } private: T var{}; }; template<typename ... Ts> class Multi: private Base<Ts>...{ public: using Base<Ts>::operator=...; using Base<Ts>::Base...; }; int main() { Multi<int, std::string> var; var = 10; var = "houdini"; return 0; }
Clion yyds!