+-
c – auto main() – > int是什么意思?
我碰巧遇到了作者使用的C 11视频中的以下代码片段

auto main()->int

我不明白这一点.我尝试使用-std = c 11编译g并且它可以工作.
有人可以向我解释这里发生了什么吗?我试图使用“auto main() – > int”进行搜索,但没有找到任何帮助.

最佳答案
C 11引入了尾随返回类型的表示法:如果使用auto引入函数声明,则将在参数和 – >之后指定返回类型.序列.也就是说,所有这一切都是声明main()返回int.

尾随返回类型的重要性主要用于函数模板,现在可以将函数参数与decltype()一起使用以确定返回类型.例如:

template <typename M, typename N>
auto multiply(M const& m, N const& n) -> decltype(m * n);

这声明函数multiply()返回由m * n生成的类型.在multiply()之前使用decltype()将是无效的,因为m和n尚未声明.

虽然它主要用于功能模板,但相同的表示法也可用于其他功能.使用C 14,在某些条件下使用auto引入函数时,甚至可以省略尾随返回类型.

点击查看更多相关文章

转载注明原文:c – auto main() – > int是什么意思? - 乐贴网