我尝试在functor中使用类型trait,下面是代码:
struct fun { template <class T> constexpr auto operator()(T a) const { return 0; } }; template<class T> struct types{};
我很好奇types<fun(int)>用法的正式名称是什么,可能是获取函数调用操作符的类型?
types<fun(int)>
juud5qan1#
fun(int)是接受int并返回fun的函数的类型。它与fun::operator()无关。
fun(int)
int
fun
fun::operator()
41zrol4v2#
types<fun(int)>的官方名称是什么它(types<fun(int)>)被称为template-id:
template-name <parameter-list >
正如您所看到的,template-id 由两部分组成:1.template-name:也就是types。1.parameter-list:它是fun(int),在你的例子中它本身是一个函数类型。
types
2条答案
按热度按时间juud5qan1#
fun(int)
是接受int
并返回fun
的函数的类型。它与
fun::operator()
无关。41zrol4v2#
types<fun(int)>
的官方名称是什么它(
types<fun(int)>
)被称为template-id:template-id
正如您所看到的,template-id 由两部分组成:
1.template-name:也就是
types
。1.parameter-list:它是
fun(int)
,在你的例子中它本身是一个函数类型。