Случай, там нет значения, поэтому нет предупреждения.

тав о самом неприятном разборе, я немного поэкспериментировал и нашел эту программу. Есть две очень похожие строки. Один из них выдает предупреждения как в g ++ 7, так и в clang ++ - 3.9, другой - нет.

int main() {
  void(); // no warning
  int(); // warning: statement has no effect
}

Во второй строке построенный по умолчанию объект типаint создается и сразу уничтожается, поэтому не используется. Но что происходит в первой строке? Если он был проанализирован таким же образом, это должно быть ошибкой, поскольку создание объекта типа недопустимоvoid, С другой стороны, это тоже не похоже на объявление функции.

Ответы на вопрос(2)

Ваш ответ на вопрос