タグ

ブックマーク / faithandbrave.hateblo.jp (3)

  • 波カッコ初期化のススメ - Faith and Brave - C++で遊ぼう

    このエントリは、C++11 Advent Calendar 2011の参加記事です。 今回は、C++11の統一初期化記法(Uniform Initialization)を使用したスタイル改善を紹介します。 統一初期化記法とは まず統一初期化記法というのは、コンストラクタの呼び出しを、関数呼び出しで使用する丸カッコだけでなく、Cからあった集成体初期化の波カッコも使えるようにしよう、というものです。 struct X { X(int a, double b, const std::string& c) {} }; X x1(1, 3.14, "hello"); // これまでの初期化構文 X x2{1, 3.13, "hello"}; // C++11で追加された初期化構文 初期化子リストとの統一 C++11では、ユーザー定義型でも配列の初期化構文を使えるようにするためにinitializer

    波カッコ初期化のススメ - Faith and Brave - C++で遊ぼう
  • Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう

    EMC++ Exits Publishing Purgatory! - The View From Aristeia Effective Modern C++ - O'Reilly Effective Modern C++ - Amazon.co.jp Scott Meyersの著書『Effective C++』のC++11とC++14対応である『Effective Modern C++ (略称EMC++)』の予約が開始しました。発売は12月4日になっています。 副題は「42 Specific Ways to Improve Your Use of C++11 and C++14」、日語だと「C++11とC++14の使い方を改善する42の方法」といったところでしょうか。

    Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう
    Hoshi-KN
    Hoshi-KN 2014/11/12
  • constメンバ関数は重要 - Faith and Brave - C++で遊ぼう

    私は基的に、C++でソース書くときはやたらめったらconst付けます。 なぜならHaskellが好きだからです(ぇ じゃなくて、状態の変更によるバグを減らすためです。 しかし、他人が書いたソースを見てると、オブジェクトのconst操作を考えて設計されてないことが けっこうあり、Is〜とかGet〜といった名前の関数の中でメンバの状態を変更してたりします。 これはとくに、JavaやC#のようなconstメンバ関数がない言語からC++に移植するようなときに 起こりやすいのですが、C++でもconstメンバ関数の存在を知ってか知らずかconstが付いてないことが多々あります。 書籍でいうと、『Game Programming Gems』では明らかにconst操作なメンバ関数にconst付いてないですね。 C++で大きなプログラムを組む際は、元となるコード(移植元やライブラリ)がオブジェクトのco

    constメンバ関数は重要 - Faith and Brave - C++で遊ぼう
    Hoshi-KN
    Hoshi-KN 2009/07/26
  • 1