可选函数的语法差异

Alternative function syntax difference

本文关键字:语法 函数      更新时间:2023-10-16

这两个函数有什么区别?

auto func(int a, int b) -> int;
int func(int a, int b);

除了符号之外,上述情况没有任何区别。当您想要引用一个或多个参数来确定函数的返回类型时,备选函数声明语法变得很重要。例如:

template <typename S, typename T>
auto multiply(S const& s, T const& t) -> decltype(s * t);

(是的,这是一个愚蠢的例子)

这两个声明之间没有什么有用的区别;两个函数都返回一个int

c++ 11的尾随返回类型对于具有template参数的函数是有用的,其中返回类型直到编译时才知道,例如在这个问题中:我如何正确地编写尾随返回类型?

它们使用不同的语法,其中只有一个在c++ 11之前的版本中有效。除此之外,您在问题中显示的两个函数声明之间没有区别。