我试图了解const double* const
用作模板的内幕。我有一些非常基本的计算想要高效执行,但是我不知道c ++编译器是如何工作的(汇编代码是什么)。
这个想法是为一个函数创建一个模板,该函数将3个常量double用作模板参数,并将double用作参数。
constexpr double p1 = 1;
constexpr double p2 = 2;
constexpr double p3 = 3;
template <const double* const a,
const double* const b,
const double* const c>
inline double func(double value)
{
constexpr double d = *a - *b;
constexpr double e = *a - *c;
constexpr double ratio = d / e;
constexpr double remain = *c - *a * ratio;
return value * ratio + remain;
}
double func2(double c) …
Run Code Online (Sandbox Code Playgroud)