C++ `return_if(cond,val)`不使用宏
我想创建一个C++ `return_if(cond,val)`不使用宏,c++,gcc,C++,Gcc,我想创建一个return\u if(cond,val),而不使用宏,用于非静态成员函数。它应该相当于 { //do some stuff on non-static data members here if (cond) return val; //and don't return otherwise } 我不介意使用GCC扩展。它会经常出现在代码中,所以我想要一个简洁的东西。你不能。任何不是宏(您已经排除)或新关键字(您无法创建)的机器都必须有自己的功能范围 即使你可以,你也
return\u if(cond,val)
,而不使用宏,用于非静态成员函数。它应该相当于
{
//do some stuff on non-static data members here
if (cond) return val; //and don't return otherwise
}
我不介意使用GCC扩展。它会经常出现在代码中,所以我想要一个简洁的东西。你不能。任何不是宏(您已经排除)或新关键字(您无法创建)的机器都必须有自己的功能范围 即使你可以,你也不应该。就像其他人一样,使用传统的、被广泛理解的、正常的方式:
if (cond)
{
return val;
}
如果您的函数有大量无法管理的分支和
return
点,也许是时候重新审视函数的设计了。如果(cond)return val代码>?通过执行return\u if(cond,val),您并没有真正保存任何输入代码>如果cond
为false,函数将返回什么?也许你想要if(cond)返回val
是执行此操作的清晰且惯用的方法。函数调用导致调用站点无法继续的唯一方法是终止或抛出。Terminate显然在这里不起作用,而且您肯定不想开始为基本流控制使用异常,只是为了主观地美化函数调用。