问题描述
我有一个由编译时和运行时函数(gtest
和 python ctypes
)调用的函数。我需要一个模板版本和一个模板变量作为函数参数的版本。例如
template<int A,int B,int C>
void function_compiletime(int a,int b,int c) {
// code section 1
}
void function_runtime(int a,int c,int A,int C) {
// code section 2
}
其中 // code section 1
与 // code section 2
相同。我很谨慎,我可能会不小心更改 // code section 1
中的某些内容,而不是 // code section 2
中的内容。如何强制函数体应该相同?
解决方法
制作函数的编译时和运行时版本的最佳方法
如何强制函数体应该相同?
通过定义单个 constexpr 函数:
constexpr void
function_runtime(int a,int b,int c,int A,int B,int C)
{
// code section
}