函数括号后面的 -> 表示法表示什么?
What does the -> notation after the function parenthesis signify?
例如,in:
virtual auto create_obj() -> std::unique_ptr<Base>
{
return std::unique_ptr<Base>{};
}
->表示什么?既然返回类型被指定为auto,为什么还需要它呢?
它被称为尾随返回类型,它只是指定函数返回类型的另一种方式。
从函数返回函数指针是很有用的一种情况。以下是"标准"语法:
void yoyo(){
std::cout << "yoyo!n";
}
void(*my_fn())(){
return yoyo;
}
与更"现代"的语法相比:
auto my_fn() -> void(*)(){
return yoyo;
}
这样更容易读。
注:后面的返回类型也可以用于函数指针声明:
auto yoyo(){ std::cout << "yoyo!n"; }
auto yoyo_fn() -> void(*)(){ return yoyo; }
auto too_far() -> auto(*)() -> void(*)(){ return yoyo_fn; }
这是相当做作的,但比我必须用传统语法编写要容易得多!
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何将ampl中的集合表示为c++中的向量
- std::is_base_of表示ctor编译错误
- 输入中的字符串数未知(以字母表示)
- 我可以信任表示整数的浮点或双精度来保持精度吗
- c++模板来表示多项式
- EASTL矢量<向量<int>>连续的
- 询问在设计我的手臂模拟器功能表示格式1
- CMakeLists.txt中的命名空间表示法
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 如何计算Big-O表示法中的平均渐近运行时间
- 我应该如何表示我拥有的连续元素序列?
- 在C++中,使用带有 std::optional 参数的函数<T>来表示可选参数是否有意义?
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 表示类模板C++空类型
- 具有所表示类的相同构造函数签名的代理类模板
- 嵌套在循环中的两个循环的 big-O 表示法
- 具有引用成员的结构是否具有唯一的对象表示形式
- 使用 int 表示浮点除法 C++
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制