相关疑难解决方法(0)

使用C++中的显式原型返回类型推导

我一直在玩g ++支持的返回类型演绎与-std = c ++ 1y.
如果您使用显式返回类型对函数进行原型化,然后尝试使用返回类型推导来定义函数,则编译器会抱怨一个模糊的旧声明:

std::string some_function();
...  
auto some_function(){ return std::string{"FOO"}; } //fails to compile
Run Code Online (Sandbox Code Playgroud)

有什么理由不适用吗?
我在定义中使用返回类型推导的基本原理是保持代码干净,但是为了自我记录的原因需要原型中的显式类型.关于何时何时不使用退货类型扣除的最佳做法的建议将不胜感激:)

为了更清楚,我想回答:
1.这是编译器中的实现错误吗?(我很确定不是这样)
2.这种类型的扣除是否可以完成,但提案不允许这样做?如果是这样,为什么不呢?
3.如果这是非常模糊的,那么推断类型并尝试将其与明确的前向声明相匹配的一些例子会让你遇到麻烦吗?
4.这背后是否有更深层次的实施具体问题?
这只是一种疏忽吗?

c++ return-type forward-declaration c++14

8
推荐指数
1
解决办法
571
查看次数

标签 统计

c++ ×1

c++14 ×1

forward-declaration ×1

return-type ×1