Considérez l'extrait ci-dessous :
struct A
{
auto foo(), bar();
};
auto A::foo() { return 1; }
auto A::bar() { return 'a'; }
int main()
{
}
Il compile bien dans Clang++ 3.7.0.
Il échoue dans 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'; }
La déduction automatique du type de retour oblige-t-elle plusieurs fonctions, déclarées dans une seule déclaration, à avoir le même type de retour ?