auto fact(int n) { return n > 1 ? fact(n - 1) : 0; } // Error: forward reference to fact I think the error message could be improved... maybe something like "forward reference to inferred return type" like we get with templates?