C++ 禁用来自代码库的函数调用
基于一个陈述不当且最近被删除的SO问题(“有可能不调用函数而调用函数吗?”),我有一个类似的问题,希望从更符合逻辑的角度提出 从代码库中禁用函数调用是否可能/最佳做法是什么?禁用该函数并不意味着通过对整个代码进行greing来手动注释掉该函数(这是一项有效但有点繁琐的任务)。我能想到的唯一办法是C++ 禁用来自代码库的函数调用,c++,C++,基于一个陈述不当且最近被删除的SO问题(“有可能不调用函数而调用函数吗?”),我有一个类似的问题,希望从更符合逻辑的角度提出 从代码库中禁用函数调用是否可能/最佳做法是什么?禁用该函数并不意味着通过对整个代码进行greing来手动注释掉该函数(这是一项有效但有点繁琐的任务)。我能想到的唯一办法是 一进入函数就返回 ret_type foo() { return ret_type(); // actual implementation is not allowed to run }
ret_type foo()
{
return ret_type();
// actual implementation is not allowed to run
}
ret_type foo();
#define foo() do { void; } while (0);
- 函数返回
void
- 函数返回一些东西
- 使用返回的值
- 未使用返回的值
在第二种情况下,您可以将其注释掉,但是为什么您首先返回一个值。抛出一个异常怎么样??@πάνταῥεῖ 好吧,这意味着改变返回类型,如果我没有抓住它。。。还有一些问题。禁用我的意思是“好像它从未被写过”,在这种情况下,投掷并不是我们所追求的黑客。(‘不要这样误用异常’你说,但我不允许引用你的话,我想)‘不要这样误用异常’你说‘哦,是吗?实际上我不记得上下文,但很可能是我说的。嗯,我不确定你的预处理器破解,至少我会用括号来替换:
{do{void;}while(0);}
。但是,任何一个象形的C++编译器都应该优化调用这个代码的所有调用。是的,只有一种类型的函数可以被禁用是合乎逻辑的,所以它更像是一种设计类型的东西。当我可以将枚举定义为返回值时,我总是使用no\u action
成员。。。以防万一。不过我想你已经报道过了。