我正在使用一个返回std::pair
的函数:
std::pair<bool, int> myFunction() {
//Do something...
if (success) {
return {true, someValue};
}
else {
return {false, someOtherValue};
}
}
成功时,该对的第一个值为true
,否则为false
。
一些调用myFunction()
的函数使用返回的对的第二个值,而其他函数则不然。对于那些人,我这样称myFunction()
:
bool myOtherFunction() {
//Do something...
bool success;
std::tie(success, std::ignore) = myFunction(); //I don't care about the pair's second value
return success;
}
有没有办法避免直接声明bool success
并返回myFunction()
的返回值的第一个元素?
答案 0 :(得分:9)
std::pair
只是一个有2个值的结构;所以只需返回结构中的“第一个”项。
return myFunction().first;
答案 1 :(得分:6)
也许
return std::get<0>(myFunction());
或
return std::get<bool>(myFunction());