ubuntu升级编译器
几个小步骤丝滑升级 C++ 23的编译器
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
apt list --upgradable
sudo apt-get update
apt install build-essential
apt install gcc-11
apt install g++-11
cd /usr/bin
ln -sf gcc-11 gcc
ln -sf g++-11 g++
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!