GCC предупреждает, когда вы квалифицируете конструкторов как pure
или const
. Это связано с тем, что конструктор ничего не возвращает (возвращает void
) и не имеет особого смысла иметь атрибуты pure
или const
для таких функций.
Смотрите демоверсию Godbolt здесь .
<source>:3:30: warning: 'pure' attribute on function returning 'void' [-Wattributes]
A() __attribute__((pure));
^
<source>:8:31: warning: 'const' attribute on function returning 'void' [-Wattributes]
B() __attribute__((const)); ^
Из документации GCC :
сопзЬ
...
Поскольку у const-функции не может быть никаких побочных эффектов, для такой функции не имеет смысла возвращать void. Объявление такой функции диагностируется.
чистый
...
Поскольку чистая функция не может иметь никаких побочных эффектов, для такой функции не имеет смысла возвращать void. Объявление такой функции диагностируется.