【发布时间】:2019-12-26 00:37:20
【问题描述】:
我们如何在调用中获得函数的返回值类型是别名或布尔值一次(如果可能的话,预计没有重载)?
让我们实现该功能的说明而已:
struct U {
int v;
}
int& f( U& u, int t ) {
if (u.v == t) return u.v ; // ...
else return (bool)0 ; // ???
}
int main(){
U u{7};
int b,c, t=9;
if (c=f(u, t)) b=c;
}
谢谢
【问题讨论】:
-
如果你想返回一个字面量值(强制转换为
bool实际上是无关紧要的),那么你的函数需要按值返回。另一种方法是返回int *,并返回一个空指针。我想std::variant也是对您的问题的回答 - 因为不可能有一个返回类型由传递的参数的值确定的函数 - 但您给出的使用示例并不表明这是合适。 -
我在回答部分 Peter 已经说过很多了:)
标签: c++ function arguments c++17