この記事は最終更新日から1年以上が経過しています。
@programming
投稿日 2021/2/4
更新日 2021/2/4 ✏
Ubuntu 16.04 LTSでg++をC++17対応に
Ubuntu 16.04 LTS (Xenial) で C++17 を使うためのメモです。
Ubuntu 16.04 LTS (Xenial) で C++17 を利用するためには g++ コンパイラをg++-7
に切り替える必要があります。
目次:
前提
- Ubuntu 16.04 LTS
g++-7のインストール
## インストール前に既存のg++のバージョンチェック:
$ g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
...
## C++17対応のg++-7をインストール:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt update
$ sudo apt install -y g++-7
## g++のシンボリックリンクを張り直す:
$ sudo ln -sf g++-7 /usr/bin/g++
## インストール後のバージョンチェック:
$ g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~16.04) 7.5.0
...
テスト
C++17から実装されたstd::any
が使えるかテストしてみます:
cpp17-test.cpp
#include <any>
#include <iostream>
int main(){
auto s = std::any(123);
std::cout << std::any_cast<int>(s) << std::endl; // "123"が標準出力
}
コンパイル&実行:
## -std=c++17を付けてコンパイル:
$ g++ -o a.out cpp17-test.cpp -std=c++17
## テスト実行:
$ ./a.out
123 ## <== 成功!