这个模板参数是什么?

wil*_*ill 4 c++ templates

所以我今天遇到了关于C++模板编程的问题,有人能解释一下A(*)(B)作为模板参数吗?

template <class X, class Y, class A, class B>
struct replace_type_impl<A(*)(B),X,Y,false>
{
  typedef typename replace_type<A,X,Y>::type (*type)(typename replace_type<B,X,Y>::type);
};
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 8

类型A (*)(B)是指向函数的指针类型,该函数采用类型的一个参数B并返回type 的值A.

这只是另一种类型.您的代码是类模板的部分特化的实例replace_type_impl.