制作函数的编译时和运行时版本的最佳方法

问题描述

我有一个由编译时和运行时函数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
}