我想要这样的事情发生:
void a(){
b()
// if condition met in b(), exit out of this function also
}
void b(){
if(condition){
super return
// also returns out of function a
}
}
我似乎无法想办法做到这一点。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:4)
b必须无效吗?您可以通过以下方式正常完成:
void a()
{
// if condition met in b(), exit out of this function also
if( !b() )
{
return;
}
//continue...
}
bool b(){
if(condition)
{
return false;
// also returns out of function a
}
return true;
}
答案 1 :(得分:4)
C ++中没有办法完全按照你的要求去做。提供了4种机制,您可以通过它们实现类似的功能。
这些是你的选择。您可以编写帮助程序或宏或模板以使其更易于使用,但这是您必须选择的。
编辑:分别处理全局和返回值。
请注意,这是一个复杂的主题,并且有许多陷阱,包括使用longjmp跨越非平凡的析构函数的未定义行为。警告程序员!
答案 2 :(得分:0)
您可以通过以下任何一种方式进行操作
类似
void a(){
if(b())
return;
}
bool b(){
if(condition){
// do something
return true;
}
}