Pet*_*mit 5 c++ conditional struct operator-overloading c++11
我在C++ 11中有一个简单的结构
struct a {
int a;
int b;
int c;
....
}
Run Code Online (Sandbox Code Playgroud)
我想使用这个结构,好像它本身就是一个标量类型,所以我重载了所有运算符.
我找不到如何定义的一个行为是在if语句中使用struct:
a v = {1,2,3};
if (v) { }
Run Code Online (Sandbox Code Playgroud)
是否有一个运算符,我可以重载以启用此行为?我想要标准行为:如果结构中的任何位为1则为真,否则为假.
Ker*_* SB 16
添加显式布尔转换:
struct a
{
explicit operator bool() const
{
return a || b || c;
}
int a;
int b;
int c;
// ...
};
Run Code Online (Sandbox Code Playgroud)