yohhoyの日記

技術的メモをしていきたい日記

2015-09-01から1ヶ月間の記事一覧

std::functionの戻り値型に関する小修正

C++1z(C++17)で修正される、std::functionクラステンプレートが扱う関数戻り値型にまつわる小さな問題。 // ラムダはintを返すがfunctionオブジェクトは戻り値型voidを扱う std::function<void()> f = [](){ return 42; }; // C++11/14: 未定義動作(undefined behavi</void()>…

-Wnoexceptオプション

gcc(g++)では、C++関数への noexcept 指定子付け忘れを警告するオプションが提供される。Clangでは未実装。要約: 評価結果がfalseとなる noexcept 式オペランドのみが警告対象。残念ながら非常に限定的。 地味にペナルティを受ける「ムーブコンストラクタ/…

複合リテラルの有効期間

C

C99で追加された複合リテラル(compound literal)の有効期間についてメモ。 ファイルスコープに記述した場合、静的記憶域期間(static storage duration)を持つ。 ブロックスコープに記述した場合、該当スコープ内でのみ有効となる。 C99 6.5.2.5/p3, 6より引…