Russian Qt Forum
Ноябрь 23, 2024, 12:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3] 4   Вниз
  Печать  
Автор Тема: signed/unsigned  (Прочитано 19893 раз)
Bepec
Гость
« Ответ #30 : Июль 04, 2014, 20:44 »

А я уже ответил Улыбающийся в самом начале. Если не умеете читать, увы.

to Old: извиняюсь, попутал. Выше m_ax выложил кусок кода с SBGlass и именно ему адресовался вопрос Улыбающийся
« Последнее редактирование: Июль 04, 2014, 20:47 от Bepec » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #31 : Июль 04, 2014, 20:48 »

Не соглашусь с вами Улыбающийся
1) Компилятор сделал всё правильно. Эти правила просты и понятны, хоть и есть неоднозначность, но не более того.
Тут виновен именно я.

Однажды, кто то из великих заметил: "Я не несу яйца, но разбираюсь в яичнице по лучше любой курицы".
Так вот, к чему это я.. Ах да, когда вот так просто провозглашают истинность "самого строгого компилятора", в то время, когда, видимо, не самые строгие компиляторы кидают сообщение об ошибке: "taking address of temporary" (и не только), то закономерным встаёт вопрос - а не "вырезано цензурой" этот компилятор и "вырезано цензурой" раздутое мнение о нём?)    
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bepec
Гость
« Ответ #32 : Июль 04, 2014, 20:52 »

Ну не будем о холиварах Веселый
 
По крайней мере я привел пример строгости - что собранное на MSVC спокойно собирается и mingw и прочим добром.

А вот собранное под minGw для MSVC нужно перековывать, обрабатывать напильником и матерком Улыбающийся

PS имею в виду кроссплатформенные программы. Те же динамические массивы, которых как бы нет в стандарте Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #33 : Июль 04, 2014, 20:54 »

Выше m_ax выложил кусок кода с SBGlass и именно ему адресовался вопрос Улыбающийся

Код
C++ (Qt)
void SBGlass::disableOpacity()
{
   wGlass_->setGraphicsEffect(&QGraphicsOpacityEffect());
}
 
Как только вы по шагам распишите что здесь происходит, то, надеюсь, сами найдете ошибку.

/*Ладно варнинг, а сама программа с этим кодом работает нормально?  Строит глазки */
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #34 : Июль 04, 2014, 20:55 »

А я уже ответил Улыбающийся в самом начале.
А, там был какой-то мутный лепет об отрицательном битике - не хочу даже искать.
Код
C++ (Qt)
int str[10];
str[0] = 0xC3000000;
unsigned int c2 = 0xC3000000;
bool test = (str[0] == c2);
 
Вот и здесь мы сравниваем отрицательное число с положительным - но здесь они оказываются равны
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #35 : Июль 04, 2014, 20:56 »

По крайней мере я привел пример строгости - что собранное на MSVC спокойно собирается и mingw и прочим добром.
А где это вы привели?
По моему опыту, все ровно наоборот, программы деланные для msvc очень не просто собрать любым другим компилятором, что не скажешь про gcc, clang, icc, которые легко собирают код деланный друг для друга.

PS имею в виду кроссплатформенные программы. Те же динамические массивы, которых как бы нет в стандарте Улыбающийся
Это каких массивов нет в стандарте? И в каком стандарте?
« Последнее редактирование: Июль 04, 2014, 20:59 от Old » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #36 : Июль 04, 2014, 21:13 »

PS имею в виду кроссплатформенные программы. Те же динамические массивы, которых как бы нет в стандарте Улыбающийся
Это каких массивов нет в стандарте? И в каком стандарте?
имеется в виду следующее, что в gcc/mingw компилируется без ошибок:
Код
C++ (Qt)
int n; // как-то вычислили
int arr[n];
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #37 : Июль 04, 2014, 21:17 »

имеется в виду следующее, что в gcc/mingw компилируется без ошибок:
Код
C++ (Qt)
int n; // как-то вычислили
int arr[n];
В c++14 будет, ждать осталось не долго. Улыбающийся
Записан
Bepec
Гость
« Ответ #38 : Июль 04, 2014, 21:29 »

Таки да, видимо долго придётся ждать. Эти динамики мозг съели при переносе с mingw. Вещь удобная, но в MSVС для поддержки того же функционала приходится чуть ли не полпрограммы переписывать. Любят эти массивы линуксоиды, что и говорить Веселый

А в приведённом коде устанавливается пустой эффект, умирающий по уходу из функции. И таки да, работает Веселый
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #39 : Июль 04, 2014, 21:39 »

А в приведённом коде устанавливается пустой эффект, умирающий по уходу из функции. И таки да, работает Веселый
А не проще передать 0 или удалить объект эффекта?
Вам везет, что эффекты наследуются от QObject и сообщают о своем разрушении. А в общем случае, передавать указатель на локальный объект очень опастно и в большинстве случаев приводят к падению.
« Последнее редактирование: Июль 04, 2014, 21:42 от Old » Записан
Bepec
Гость
« Ответ #40 : Июль 04, 2014, 21:47 »

Собственно насколько я помню этот ход я взял из исходников Qt Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #41 : Июль 04, 2014, 21:48 »

Собственно насколько я помню этот ход я взял из исходников Qt Улыбающийся
Ну и что?
Записан
Bepec
Гость
« Ответ #42 : Июль 04, 2014, 23:20 »

Ну и то, что он там используется именно для тех же целей и не вызывает пагубных действий.

Если вы о "почему не Null", то я доверился троллям и насколько я помню, там была какая то проблема именно с передачей объекта, а не нулевого указателя. Точно не помню, к сожалению ^.^
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #43 : Июль 04, 2014, 23:31 »

Ну и то, что он там используется именно для тех же целей и не вызывает пагубных действий.
Я вам написал выше, почему конкретно этот случай не приводит к пагубным последствиям. Но таких случаев единицы, а которые приводят их 100500. Улыбающийся
Но у вас же есть 3 дня, что бы с этим разобраться.

И да, если такой код есть в Qt (хотя я до сих пор сомневаюсь), остается только сожалеть.
« Последнее редактирование: Июль 04, 2014, 23:38 от Old » Записан
Bepec
Гость
« Ответ #44 : Июль 05, 2014, 01:10 »

Не вижу ничего стоящего сожаления Улыбающийся Ну да ладно.
Записан
Страниц: 1 2 [3] 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.163 секунд. Запросов: 23.