crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Тема закрытаНачать новую тему
> оператор switch, GCC ест, а студия нет
Litkevich Yuriy
  опции профиля:
сообщение 11.4.2008, 10:59
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


При компиляции тестового проекта в студии возникла проблема описаная здесь.
При компиляции в MinGW проблемы нет, может кто знает в чем нюанец?
---
просьба обсуждать в этой ветке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 11.4.2008, 11:34
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


        case TBool:
             { // <<=================================
             QComboBox *cmbox = new QComboBox(parent);
             cmbox->addItem("0");
             cmbox->addItem("1");
             return static_cast<QWidget *>(cmbox);
             } // <<=================================

По Стандарту, перепрыгивать инициализацию объекта нельзя.
Типо так:
goto lbl; // отсюда нельзя
int i = 5; // есть инициализация
goto lbl; // отсюда можно
i = 7;
lbl:;
goto lbl2; // отсюда можно
int j; // нет инициализации
j = 5;
goto lbl2; // и отсюда можно
j = 7;
lbl2:;
goto lbl3; // отсюда можно
{ int k = 5; } // инициализация есть, но область видимости ограничена
lbl3:;


Сообщение отредактировал Litkevich Yuriy - 5.3.2009, 21:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 11.4.2008, 11:38
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Учти, что нетривиальный конструктор по умолчанию - это тоже инициализация.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.4.2008, 11:44
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


т.е. скобки помогли т.к. ограничили область видимости, я правильно понял?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.4.2008, 12:09
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Примерно так.
А вообще многое зависит от реализации того или иного компилятора.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 11.4.2008, 12:49
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
я правильно понял?

Угу.

Цитата
А вообще многое зависит от реализации того или иного компилятора.

Ну если смотреть на Стандарт, то там всё вполне однозначно ;).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.4.2008, 12:57
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(archimed7592 @ 11.4.2008, 13:49) *
Ну если смотреть на Стандарт, то там всё вполне однозначно ;).
Если бы все разработчики компиляторов следовали стандарту, то цены бы им не было. :)

А пока приходится руководствоваться еще и спецификой работы компиляторов.

Сообщение отредактировал ViGOur - 11.4.2008, 12:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
icore2008
  опции профиля:
сообщение 11.4.2008, 12:58
Сообщение #8


Студент
*

Группа: Новичок
Сообщений: 22
Регистрация: 10.4.2008
Пользователь №: 145

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 11.4.2008, 12:09) *
Примерно так.
А вообще многое зависит от реализации того или иного компилятора.


gcc не учел в данном случае СТАНДАРТ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.4.2008, 13:04
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Думаю он скорей его немного изменил. :)

Если вспоминать 6 студию, то такая конструкция, там бы не откомпилилась, а должна бы:
for( int n=0; n < 100; n++);
for( int n=0; n < 100; n++);
Это я думаю неучитывание стандарта, считай не доработка.

Сообщение отредактировал ViGOur - 11.4.2008, 13:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 11.4.2008, 13:06
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
Думаю он скорей его немного изменил.

Разве в 4-ом это не исправлено? В 3.4 более серьёзных багов туева хуча, так что роптать на этот по меньшей мере кощунственно :).

Цитата
Если вспоминать 6 студию, то такая конструкция, там бы не откомпилилась, а должна бы:

:lol:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 16:35