根据这个BitmaskType
概念,实现必须确保以下语句的格式正确:(列在 §17.5.2.1.3.4 中)
如果表达式 X & Y 不为零,则在对象 X 中设置值 Y。
其中 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 buglist 但找不到任何涵盖该主题的内容。