可选函数的语法差异
Alternative function syntax difference
这两个函数有什么区别?
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之前的版本中有效。除此之外,您在问题中显示的两个函数声明之间没有区别。
相关文章:
- QMetaObject invokeMethod的基于函数指针的语法
- 使用基类指针调用基类的值构造函数的语法是什么?
- C++使用 rand 定义函数语法
- C++中未命名函数指针的语法
- 将值传递给构造函数 c++ 的差异语法
- C++语法中的函数指针
- 存储函数指针的正确语法
- QObject::连接不起作用 - 使用函数语法找不到信号
- 对函数库中的语法感到困惑 std::bind
- 解释通过从函数引用返回数组的语法
- 函数错误 C2059:语法错误:'>'不起作用
- 当C++类函数参数之一是结构时,它们的语法有什么不同
- 将显式指定的函数模板重载作为模板参数传递的正确语法是什么?
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 需要"模板<>"语法 --> 通过函数调用类模板
- C++ std::函数语法问题
- 备用函数语法/函数原型
- 奇怪的c++语法:函数调用之前的类型定义
- c++数组语法(函数返回数组)
- 实现[B,C]=f(A)语法(函数f作用于具有两个或多个输出数组的数组)