タグ

c++0xに関するuricleのブックマーク (2)

  • C++ and Beyond 2011 〜tupleを関数に可変引数として渡す〜 - redboltzの日記

    旅日記ばかりでアレなので、Andreiのセッションで、特に面白かったものを紹介したい。 C++0xでは、tupleがサポートされている。任意の長さのtupleに対してある関数を適用したい場合どうするだろう? まず、任意の長さのtupleはテンプレート引数にVariadic TemplatesのTemplate Parameter Packを渡すことになる。 以下がコードイメージだ。 template <class F, class... Ts> typename std::function<F>::result_type apply(F& fun, std::tuple<Ts...>& args) { return fun(args...); } 残念ながらこれはコンパイルできない。問題は、funの呼び出しの引数である。argsは、単なるクラステンプレートtupleへの参照であり、このクラ

  • C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう

    C++0xの概要はこちら ・Angle bracket テンプレートの連続した山カッコの問題の解決 ・初期化子リスト ユーザー定義のクラスで配列のような初期化構文を実装可能になる ・Uniform initialization コンストラクタの構文と初期化子リストの構文が一様になる ・デリゲーティング・コンストラクタ コンストラクタから他のコンストラクタを呼び出せる ・auto 型推論 ・記憶クラス指定子としての auto の削除 autoキーワードの意味が変更になるため、下位互換がなくなる ・decltype sizeofの型版 ・Template Aliases テンプレートを使用して型の別名を付けることができる。いわゆるtemplate typedef ・拡張sizeof 構造体/クラスのメンバをインスタンス化せずにsizeofすることが可能になる ・nullptr ヌルポインタを表

    C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう
  • 1