C 中有没有办法强制函数调用者向函数发送常量值(如果没有,则预期编译错误)?
例如,考虑这个简单的函数:
int foo(int x, int y)
{
assert( x < 10);
return x+y;
}
Run Code Online (Sandbox Code Playgroud)
如果我能以某种方式告诉编译器 x 在所有情况下都应该以常量值发送,则可以在编译时评估断言(即使断言实际上仅在运行时调用)。有办法这样做吗?
只是为了解释动机 - 在低资源系统中,在编译时评估事物可以显着降低软件占用空间和执行时间。
谢谢。