有什么方法可以“强制”函数参数遵循 C++ 中的某些规则?
举例来说,假设我想编写一个函数来计算数学函数的 n 次导数。假设函数的签名是这样的:
double computeNthDerivative(double x, unsigned int n);
现在,假设我想禁止用户为 n 输入 0。如果用户输入为 0,我可以只使用
assert
或测试值和 throw
异常。但是有没有其他方法可以做这种事情?
编辑:条件将在编译时设置,但检查必须在运行时完成。
最佳答案
class Policy {
private:
String myPolicy;
public :
Policy(String regEx) : myPolicy(regEx) {
}
void verify(int n) {
regEx strtok , sprintf, blah, blah n
};
class Asserted {
private:
Policy policy;
public:
Asserted(Policy policy, int n) throw AAAHHHHH {
policy.verify(n);
}
};
然后最后
Asserted assert = new Asserted(Policy("[1-9]", 8))
double computeNthDerivative(2.6, assert);
关于c++ - 强制函数参数匹配某个规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30083721/