C++ 这种模板函数是如何调用的?

C++ 这种模板函数是如何调用的?,c++,C++,谁能告诉我什么样的模板函数\u Fn()?这里的->是什么意思 template <class _Ty0, class _Ty1> struct _Common_type { template<class _Uty0, class _Uty1> static auto _Fn(int) -> decay<decltype(false ? declval<_Uty0>() : declval<_Uty1>())>; t

谁能告诉我什么样的模板函数
\u Fn()
?这里的
->
是什么意思

template <class _Ty0, class _Ty1>
struct _Common_type
{
  template<class _Uty0, class _Uty1>
  static auto _Fn(int) -> decay<decltype(false ? declval<_Uty0>() : declval<_Uty1>())>;

  template<class, class>
  static auto _Fn(_Wrap_int) -> _Nil;

  typedef decltype(_Fn<_Ty0, _Ty1>(0)) type;
};
模板
结构\u公共\u类型
{
模板
静态自动(int)->衰减;
模板
静态自动(自动换行)->Nil;
typedef decltype(_Fn(0))类型;
};

考虑以下功能:

void foo()
{}
我们也可以这样写:

auto foo() -> void
{}
它是一个尾随返回类型

在上面的例子中,这是完全没有意义的,但是。您的返回类型不是
void
,而是与参数()相关的内容。有些人总是用这个表单来表示“”(甚至在
main
!Ew!)†

现在按照这个逻辑一直到更复杂的函数模板声明,这就是您所看到的


†事实上,在我看来,这是您代码的作者所做的,因为在您的示例中,这似乎不是“必要的”。

考虑以下功能:

void foo()
{}
我们也可以这样写:

auto foo() -> void
{}
它是一个尾随返回类型

在上面的例子中,这是完全没有意义的,但是。您的返回类型不是
void
,而是与参数()相关的内容。有些人总是用这个表单来表示“”(甚至在
main
!Ew!)†

现在按照这个逻辑一直到更复杂的函数模板声明,这就是您所看到的


†事实上,在我看来,这就是您代码的作者所做的,因为在您的示例中它似乎不是“必要的”。

Type f()
可以写成
auto f()->Type
auto f()->returnType
是尾随的返回类型符号。伙计们。伙计们。回答我的问题!“它是如何调用的?”在“它的名称是什么?”或“如何调用函数?”的意义上,我首先理解了后者,但问题似乎是关于first@LightnessRacesinOrbit复制品。复制品。复制品。答案不分散。
Type f()
可以写成
auto f()->Type
auto f()->returnType
是尾随的返回类型表示法。伙计们。伙计们。回答我的问题!“它是如何调用的?”在“它的名称是什么?”或“如何调用函数?”的意义上,我首先理解了后者,但问题似乎是关于first@LightnessRacesinOrbit复制品。复制品。复制品。不是零散的答案。