Si je comprends bien, les types abstraits ne peuvent pas être utilisés comme type de retour d'une fonction virtuelle pure. Cependant, si un type de retour est utilisé, alors gcc (mais pas clang) accepte le code suivant :
struct S {
virtual auto f() -> S = 0;
};
démo .
S'agit-il d'un bogue de gcc, ou le langage n'exige-t-il pas qu'un diagnostic soit émis pour ce code ?