如何使用结构体作为条件语句的操作数
How to use a struct as an operand of a conditional?
我在c++ 11中有一个简单的结构
struct a {
int a;
int b;
int c;
....
}
我想把这个结构体当作一个标量类型来使用,所以我重载了所有的操作符。
我找不到如何定义的一个行为是在if语句中使用结构体:
a v = {1,2,3};
if (v) { }
是否有一个操作符,我可以重载以启用此行为?我想要标准的行为:如果任何位是1在结构体它是真,否则它是假的。
添加一个显式布尔转换:
struct a
{
explicit operator bool() const
{
return a || b || c;
}
int a;
int b;
int c;
// ...
};
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- 控制允许动态运行c++的并发操作数
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 用于打印每个操作数的单独语句
- 需要左值作为赋值错误的左操作数通过 if 语句
- 如何使用结构体作为条件语句的操作数
- C/C++ 中的 'if' 语句是否将操作数转换为整数?