解决方案
第一个之所以有效,是因为这条规则,7.1.6.4/11 最新草案
一旦
return
但是,在函数中可以看到语句,但是,从该语句中得出的返回类型可以在其余的功能中使用,包括在其他函数中return
声明。
所以返回类型推导为 int
从一开始 return
陈述;仅检查第二个以确保它也给出 int
, ,假设递归调用确实如此。
第二个无法编译,因为表达式的类型取决于返回类型;所以无法推断出类型。
其他提示
递归函数只有在递归呼叫之前具有非递归返回语句,才能具有自动返回类型。请参阅返回型正常功能扣除。
不隶属于 StackOverflow