Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему компилятор пропускает без return? 
:(
    Опции темы
Dims
Дата 27.10.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Чё-то совсем у меня крыша едет, наверное. Почему компилятор пропускает вот такую функцию

Код

CCDecoderDevice FindCCDecoderDevice() {
    ClassEnumerator classes = com.CreateClassEnumerator(AM_KSCATEGORY_VBICODEC);

    while(classes.HasNext()) {
        CCDecoderDevice ans;

        Moniker mon = classes.Next();
        Filter fil = Filter( mon.Bind(IID_IBaseFilter) );
        PinEnumerator pins = fil.EnumPins();

        while(pins.HasNext()) {

            Pin pin = pins.Next();
            wstring PinName = pin.GetName();

            if( pin.GetDirection() == PINDIR_OUTPUT ) {
                ans.out = pin;
                break;
            }

            /*
            else if( pin.GetDirection() == PINDIR_INPUT && PinName.compare( L"HWCC" ) == 0) {
            ans.HWCC = pin;
            break;
            }

            else if( pin.GetDirection() == PINDIR_INPUT && PinName.compare( L"VBI" ) == 0) {
            ans.VBI = pin;
            break;
            }*/

        }

        if( !ans.out.IsNull() && !ans.VBI.IsNull() ) {
            wcout << L"Found CC decoder filter: " << mon.GetFriendlyName() << endl;
            ans.fil = fil;
            return ans;
        }

    }

}


Она же должна возвращать CCDecoderDevice, а я забыл указать return во всех ветках. Ну ладно, если он пропускает, что ЧТО же возвращает эта функция, если ей не случается попасть на строку return ans?
PM MAIL   Вверх
Andrey44
Дата 27.10.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Коипилятор дожен выдавать ворнинк о том что нет главного возврата из функции.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Dims
Дата 27.10.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



А, есть варнинг. А что же возвращает функция? Конструирует объект с конструктором без параметров?
PM MAIL   Вверх
UnrealMan
Дата 27.10.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(Dims @  27.10.2009,  14:45 Найти цитируемый пост)
А что же возвращает функция?

Будет неопределённое поведение

Цитата(6.6.3)
Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function.

Исключение из этого правила делается только для глобальной функции main.

Цитата(Andrey44 @  27.10.2009,  14:31 Найти цитируемый пост)
Коипилятор дожен выдавать ворнинк о том что нет главного возврата из функции.

Стандарт не обязывает это делать.
PM MAIL   Вверх
Dims
Дата 27.10.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Ну и дела!
PM MAIL   Вверх
Andrey44
Дата 28.10.2009, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата(UnrealMan @  27.10.2009,  15:02 Найти цитируемый пост)
Стандарт не обязывает это делать.

Ну по крайней мере VS это делает


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.