ネタ元:blog.y4su0.com - gcc 4.3.1 を Windows で使ってみる
Windows用にビルドされたGCCのバイナリがあると聞いたのでインストールしてみました。
ここからgcc 4.4-20090123のsnapshot版をダウンロードして、インストーラを使ってインストール
とても簡単です。
(cygwinは事前インストールが必要cygwinをインストールしなくても、コマンドプロンプトだけで実行可能です)
まず言語仕様
#include <vector> // Defaulted and Deleted Function struct X { X() = delete; X(const X&) = default; }; // Strongly-typed enums enum class E : int { A = 0, B }; // inline namespace namespace std { inline namespace tr1 { template <class T, int N> class array {}; } } // 戻り値の型を後置する関数宣言構文(そのうち変わるかも) template <class T, class U> auto plus(T a, U b) -> decltype(a + b) { return a + b; } int main() { std::vector<int> v = {1, 2, 3}; // Initializer Lists const auto& a = v; // auto-typed variables // スコープがあるenum E e = E::A; // stdでもstd::tr1でもarrayにアクセス可 std::array<int, 3> ar; std::tr1::array<int, 3> arr; int result = plus(1, 2); }
動いた〜。
次にライブラリ
chrono
#include <chrono> using namespace std::chrono; int main() { // 500ナノ秒待つ auto go = system_clock::now() + nanoseconds(500); while (system_clock::now() < go); }
forward_list
#include <iostream> #include <iterator> #include <forward_list> #include <algorithm> using namespace std; int main() { forward_list<int> ls; ls.push_front(3); // 先頭に3を追加 ls.insert_after(ls.begin(), 1); // 先頭の後ろに1を追加 size_t size = distance(ls.begin(), ls.end()); // 要素数取得 copy(ls.begin(), ls.end(), ostream_iterator<int>(cout, "\n")); }
Placement Insert
#include <vector> struct hoge { hoge(int a, int b, int c) {} }; int main() { std::vector<hoge> v; v.emplace_back(1, 2, 3); v.emplace(v.begin(), 3, 2, 1); }
使ってないけど
Status of Experimental C++0x Support in GCC 4.4