gpt4 book ai didi

c++ - 将函数作为模板参数传递

转载 作者:行者123 更新时间:2023-11-30 01:37:44 25 4
gpt4 key购买 nike

<分区>

我正在移植我写到 GCC 的一些 MSVC 代码,但它无法在 GCC 上编译(参见:https://ideone.com/UMzOuE)。

template <const int N>
struct UnrolledOp
{
template <const int j, int op(int*, int*)>
static void Do(int* foo, int* l, int* r)
{
return UnrolledOp<N - 1>::Do<j + 4, op>(foo, l, r);
}
};

template <>
struct UnrolledOp<0>
{
template <const int j, int op(int*, int*)>
static void Do(int* foo, int* l, int* r) { }
};

template <const int fooSize, int op(int*, int*)>
void Op(int* foo, int* l, int* r)
{
UnrolledOp<fooSize / 4>::Do<0, op>(foo, l, r);
}

int Test(int* x, int* y)
{
return 0;
}

int main()
{
Op<16, Test>(nullptr, nullptr, nullptr);
return 0;
}

出于某种原因,GCC 不喜欢我将 op 传递给其他模板函数的方式。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com