2014年9月28日日曜日

C++11のテスト

早速C++11の機能を試してみます。

推論型(auto)

C++は変数の型は明示的にしてはっきりさせなければならないが、テンプレート型などを利用すると複雑になってしまう。
それを簡単に書くために推論型が追加された。

下記の例ではイテレータをautoを利用して簡潔な記述になっている。

[auto.cpp]

#include <iostream>
#include <vector>

//推論型のテスト
int main() {

  using namespace std;

  vector<int> nums;

  nums.push_back(10);
  nums.push_back(20);
  nums.push_back(30);
  nums.push_back(40);
  nums.push_back(50);

  //before C++
  //vector<int>::iterator it = nums.begin();
  auto it = nums.begin();

  while(it != nums.end()) {
    cout << *it << endl;
    ++it;
  }

  return 0;

}

C++11のコンパイル C++11対応のコードをg++でそのままコンパイルするとエラーが出るので コンパイルするには-std=c++11 オプションをつけてコンパイルします。 $ g++ -std=c++11 auto.cpp -o auto
でコンパイル出来れば成功です。

C++11の環境を作る(Ubuntu)

C++11のリポジトリ

CentOSはなるべく安定版を提供するのがポリシーのためデフォルトのリポジトリのyumコマンドでは最新版を得られません。

現在、C++もC++11を使えるリポジトリがない訳でもありませんが、ライブラリが一部欠けていたり依存関係が解決出来なかったり一発で簡単にインストールできる訳ではないようです。

そこで簡単にC++11環境をインストール出来るようにUbuntuで環境を整えたいと思います。

PPAの使用

UbuntuにはPPAと言うパッケージ管理システムがあり、これを利用すると最新盤の環境が簡単に構築できます。
もちろん最新版は安定版よりリスクが高いのでテスト目的以外に使用するのは止めた方がいいでしょう。

PPAでインストールでいるソフトウェアの検索はlaunchpadで検索します。
add-apt-repository ppa:(アカウント名)/(PPA名)の形式で追加できます。

gccの最新版はここが有名なようなので

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test

でパッケージインストールします。
現在の最新版は4.9なのでgcc-4.9 と g++-4.9をインストールします。

$ sudo apt-get update
$ sudo apt-get install gcc-4.9 g++-4.9

$ gcc --version
$ g++ --version


で4.9が確認できれば成功です。

2014年9月22日月曜日

Ubuntuのバージョン確認

Ubuntuのバージョン


Ubuntuにアプリをインストールする場合、バージョンによってライブラリの互換性が問題になったりするので事前にバージョンを確認することがあります。

バージョン確認はlsb-releaseの中身に書いてあります。


$ cat /etc/lsb-release


またカーネルのバージョンはunameコマンドで確認できます。


$ uname -a