Рассмотрим приведенный ниже фрагмент:
struct A
{
auto foo(), bar();
};
auto A::foo() { return 1; }
auto A::bar() { return 'a'; }
int main()
{
}
Он отлично компилируется в Clang ++ 3.7.0.
Это не работает в G ++ 5.2.0:
main.cpp: In member function 'auto A::bar()':
main.cpp:7:24: error: inconsistent deduction for 'auto': 'int' and then 'char'
auto A::bar() { return 'a'; }
Заставляет ли автоматическое определение типа возврата несколько функций, объявленных в одном операторе, иметь один и тот же тип возврата?
auto foo(), bar();
имеет неправильный формат, потому что он пытается объявить функции, а не переменные? 29.10.2015auto
приводит ли к двусмысленности 29.10.2015auto
? 30.10.2015auto
. 30.10.2015