概念によればBitmaskType
、実装では、次のステートメントが適切に形成されていることを保証する必要があります: (§17.5.2.1.3.4 に記載)
式 X & Y がゼロ以外の場合、値 Y がオブジェクト X に設定されます。
ここで、X と Y はコンセプト タイプBitmaskType
です。
gcc 4.7 で次の単純なコード スニペットを試すと、テンプレート推定エラーが発生します。
#include <future>
int main() {
(std::launch::async & std::launch::async) != 0;
}
エラー:
error: no match for 'operator!=' in '(std::launch)1 != 0'
... followed by tons of deduction errors
これはgccのバグですか、それともここで何か間違っているのですか? はいの場合、この種のチェックを実行する適切な方法は何ですか?
すでに gcc バグリストを確認しましたが、このトピックをカバーするものは見つかりませんでした。