ichou1のブログ

主に音声認識、時々、データ分析のことを書く

C++メモ(C++14を使うためのGCCアップデート)

C++14機能の「std::make_unique」を使おうとしたらコンパイルエラーが出た。

error: ‘make_unique’ is not a member of ‘std’

使っているGCCのバージョンは「4.8.4」

サイトを確認すると、
GCC 4.9 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)

「4.9」から実装らしい。

implemention of std::make_unique;

「4.9」に上げる。
以下のPPAをリポジトリに追加。
launchpad.net

インストールを実行。

% sudo add-apt-repository ppa:ubuntu-toolchain-r/test
% sudo apt-get update
% sudo apt-get install g++-4.9

「g++」を実行した時は「4.9」が使われるように設定する。

% sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
% sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

「4.9」が使われるようになったことを確認。

% sudo update-alternatives --config g++

alternative g++ (/usr/bin/g++ を提供) には 2 個の選択肢があります。

  選択肢    パス            優先度  状態
------------------------------------------------------------
* 0            /usr/bin/g++-4.9   20        自動モード
  1            /usr/bin/g++-4.8   10        手動モード
  2            /usr/bin/g++-4.9   20        手動モード

これでコンパイルが通るようになった。