タグ

ブックマーク / cpprefjp.github.io (2)

  • 非推奨だった bool 型に対するインクリメント演算子を削除 [P0002R1] - cpprefjp C++日本語リファレンス

    概要 C++17ではbool型に対する前置および後置のoperator ++を削除する。 bool型に対する前置および後置のoperator ++とはC++98の時点で非推奨になっていた機能である。 具体的にどのような働きをするのかというと、以下のように値をtrueに書き換える機能をもつ。 #include <iostream> int main() { bool b = false; const bool b1 = ++b; std::cout << std::boolalpha << b1 << std::endl; // => true const bool b2 = ++b; std::cout << std::boolalpha << b2 << std::endl; // => true }

    Nyoho
    Nyoho 2017/07/18
    “これに起因するバグで少なくとも6つの過度の放射線被曝事故を引き起こし、3人が死亡した例がある。” 全く知らなかった……
  • constexpr [N2235] - cpprefjp C++日本語リファレンス

    このページはC++11に採用された言語機能の変更を解説しています。 のちのC++規格でさらに変更される場合があるため関連項目を参照してください。 概要 constexprは、汎用的に定数式を表現するための機能である。 constexprは、「constant expression (定数式)」の略語である。 この機能を使用することで、コンパイル時に値が決定する定数、コンパイル時に実行される関数、コンパイル時にリテラルとして振る舞うクラスを定義できる。 定数式の例として、パラメータの値を2乗して返す関数square()は、以下のように記述する: #include <cassert> constexpr int square(int x) { return x * x; } int main() { constexpr int compile_time_result = square(3);

    Nyoho
    Nyoho 2016/11/26
    constexpr は汎用的に定数式を表現するための機能です
  • 1