Разрешает ли C++ типы возвращаемых значений по умолчанию для функций?

В C действует следующий ужас:

myFunc()
{
  return 42;  // return type defaults to int.
}

Но как насчет C++? В любом случае я не могу найти на него ссылку ...

Мой компилятор (Codegear C++ Builder 2007) в настоящее время принимает его без предупреждения, но у меня были комментарии, что этот является является ошибкой в ​​C++.

Какой это компилятор? Я никогда не встречал никого, кто бы это принимал.

jalf 01.12.2008 18:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
1
4 991
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

В C++ это плохо сформированный. Это означает, что он не компилируется со стандартным компилятором. Пункт 7.1.5 / 4 в Приложении C к Стандарту объясняет изменение «Запрещение неявного int».

Например, если вы компилируете с помощью g ++, убедитесь, что у флагов -W -Wall есть предупреждение, или у -pedantic, чтобы оно отображалось как ошибка.

Piotr Lesnicki 01.12.2008 18:34

вы ходите энциклопедией стандарта C / C++ :)

Ilya 01.12.2008 18:36

Илья, если бы я был. у меня просто есть копия хе-хе :)

Johannes Schaub - litb 01.12.2008 18:39

Неявные возвращаемые типы допустимы в C89, но многие компиляторы предупреждают об этом.

Они недействительны ни в C++, ни в C99.

Это не законный C++, но некоторые компиляторы принимают его либо молча, либо с диагностикой.

Итак, это определенно «плохо сформированный» C++, но кажется, что многие компиляторы принимают его в лучшем случае с предупреждением.

  • Codegear C++ Builder 2007: вообще никаких ошибок или предупреждений
  • G ++: требуется -W -Wall для генерации предупреждения или -pedantic для генерации ошибки (Петр)
  • MSVC 8: выдает ошибку (tfinniga)
  • другие ...?

Пожалуйста, добавьте / исправьте этот список!

Как написано, он плохо сформирован. MSVC 8 выдает следующую ошибку:

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

Другие вопросы по теме