(от версии компилятора точно зависит, уже пробовал менять)?
https://godbolt.org/z/hjq38b9qz
о_О выглядит, будто gcc чудит
На старых версиях msvs такое же поведение, как и на gcc. На gcc trunk уже компилируется
А стандарт указан?
msvc может зависеть от режима
у меня пока не получается доказать, что инстанциация класса произойдет (внезапно), но дальше понятно, что инстанцируется класс и вместе с ним декларации функций, а декларациям функций все равно на абстрактность и виртуальность функций-членов возвращаемого типа http://eel.is/c++draft/temp.spec#temp.inst-2 http://eel.is/c++draft/temp.spec#temp.inst-3.1 http://eel.is/c++draft/dcl.fct#11 и далее
Декларация функции с возвращаемым абстрактным типом Abstract в примере выше не компилируется ни тем, ни другим компилятором.
значит, буду дальше копать стандарт
При этом декларация типа такой функции компилируется в clang, но не компилируется gcc: typedef Abstract f();
Обсуждают сегодня