c++ 使用函数调用操作符作为模板参数的官方名称是什么

ktca8awb  于 2023-05-30  发布在  其他
关注(0)|答案(2)|浏览(121)

我尝试在functor中使用类型trait,下面是代码:

struct fun {
  template <class T>
  constexpr auto operator()(T a) const  {
    return 0;
  }
};

template<class T> 
struct types{};

我很好奇types<fun(int)>用法的正式名称是什么,可能是获取函数调用操作符的类型?

juud5qan

juud5qan1#

fun(int)是接受int并返回fun的函数的类型。
它与fun::operator()无关。

41zrol4v

41zrol4v2#

types<fun(int)>的官方名称是什么
它(types<fun(int)>)被称为template-id

template-id
template-name <parameter-list >

正如您所看到的,template-id 由两部分组成:
1.template-name:也就是types
1.parameter-list:它是fun(int),在你的例子中它本身是一个函数类型

相关问题