AlgebraMaster

Modern C++ 创造非凡 . 改变世界

导航

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!

 

posted on 2021-08-04 21:48  gearslogy  阅读(135)  评论(0编辑  收藏  举报