Почему
struct MyStruct {
auto foo () { return 1; }
auto bar () { return foo(); }
};
но при использовании возвращаемого возвращаемого типа типа:
struct MyStruct {
auto foo () { return 1; }
auto bar () -> decltype(foo()) { return foo(); }
};
сбой компиляции с
error: функция 'foo' с выведенным типом возвращаемого значения не может использоваться до его определения
Это правильное поведение в части реализации?