我用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