読者です 読者をやめる 読者になる 読者になる

C++1y boolへの変換演算子をコンテナに持たせる

C++

N3509 Operator Bool for Ranges


std::vector、std::stringといったコンテナクラスに、operator boolを持たせよう、という提案。
これがあると、!empty()を必要とする状況でプログラムの冗長性を解消できる、というのが動機です。

// 従来の方法
string s = f();
if (!s.empty()) {
    // sを使った処理
}
// operator boolがある場合
if (string s = f()) {
    // sを使った処理
}

こういう書き方は、Boost.Optionalでよく使います。文字列だと、1行ずつのファイル読み込み処理などで使えると思います。
boolへの変換演算子は、Boost.Rangeのiterator_rangeではすでに提供されています。