我用operator &=
做了一些测试。如以下示例所示,这适用于单个bool
类型以及vector<int>
类型,但不适用于vector<bool>
。运算符&=对于元素矢量<bool>未定义?
#include <vector>
int main(){
bool a, b;
a &= b; // ok
std::vector<bool> c(1);
c[0] &= b; // error
c[0] = c[0] & b; // ok
std::vector<int> d(1);
d[0] &= b; // ok
return 0;
}
谁能告诉这里发生了什么?
(我用gcc 4.4.3)
+1实际回答问题。 – 2011-04-28 17:38:58