首页 > 解决方案 > 制作函数的编译时和运行时版本的最佳方法

问题描述

我有一个函数将被编译时和运行时函数(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 b, int c, int A, int B, int C) {
    // code section 2
}

与哪里// code section 1相同// code section 2。我很小心,我可能会不小心更改 in// code section 1而不是 in 中的某些内容// code section 2。如何强制要求函数的主体应该相同?

标签: c++templatesruntimecompile-time

解决方案


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

如何强制要求函数的主体应该相同?

通过定义单个 constexpr 函数:

constexpr void
function_runtime(int a, int b, int c, int A, int B, int C)
{
    // code section
}

推荐阅读