- 1
- 2
- 3
- 4
- 5
- 6
struct BufInfo
{
const tbal::Bitmap &src, &dst;
int y1, y2;
BufInfo (const tbal::Bitmap &scr, const tbal::Bitmap &dst, int y1, int y2) : src(src), dst(dst), y1(y1), y2(y2) {}
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+19
struct BufInfo
{
const tbal::Bitmap &src, &dst;
int y1, y2;
BufInfo (const tbal::Bitmap &scr, const tbal::Bitmap &dst, int y1, int y2) : src(src), dst(dst), y1(y1), y2(y2) {}
};
Как можно проебать час жизни...
http://static.ozone.ru/multimedia/toys/1001361793.jpg
Никогда...
Не было...
:,(
> ...src(src), dst(dst)... ?
http://ideone.com/hO6024
Так у тебя то все корректно написано. А у Тараса вот так: http://ideone.com/K98dNU
А логика в этой конструкции очень простая - локальные переменные всегда просматриваются первыми, поэтому a(a) это локальная переменная. Но т.к. в списке инициализации нет смысла инициализировать локалки, поэтому a(a) это член класса.
Более того, у меня как-то раз получалась примерно вот такая ситуация: https://ideone.com/HGKwQA.
и вместо того, чтобы взять указатель вместо ссылки (он то как раз позволяет и nullptr, и нормальный адрес), можно ведь проявить интеллект и в конструкторе ссылку проинициализировать самой собой - показать кто тут главный какир
A reference shall be initialized to refer to a valid object or function. [Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the “object” obtained by dereferencing a null pointer, which causes undefined behavior.]
Так что UB.
> shall be
in a well-defined program of course ;)
Two beer or not to bee.
Проверить под виндой я не мог, потому что в виндоблядской студии херово с библиотекой pthread.h
Кстати, я правильно понимаю, что pthread_join, которая ждёт завершения работы потока, корректно освобождает все ресурсы, связанные с этим потоком?
2. Это не проэкт, это таки проект.
Да ну? warning: unused parameter ‘scr’ [-Wunused-parameter]
Собственно единственное место, в котором этот ворнинг оказывается полезным. Обычно, когда юзаешь много виртуальных функций, он только бесит.
UPD: для некоторых компиляторов макрос определяется через пустую функцию
Borland C++ Builder?
Bormand and Taras use latent sarcasm mode. You shouldn't answer to they questions.
It wasn't a question. I just complained about frequent false-positives of this warning. And usage of (void) or Q_UNUSED or /* */ is so tedious...
Куриные?
A bad dancer blames his balls.
Если уж мы взялись за идиомы...
Bowlings?
P.S. You should define some of them between an 'include $(CLEAR_VARS)' and an 'include $(BUILD_XXXXX)'
Сползаешь потихоньку в болото крестоблядства.
>потому что в виндоблядской студии херово с библиотекой pthread.h
Удали её. Просто сотри нахуй. Или настрой нормально.
Тот же эклипс должен был тебе показать unused.
Тогда кресты на всё неявное и подозрительное ругаются не хуже твоего пасцаля.
http://stackoverflow.com/questions/154630/recommended-gcc-warning-options-for-c
Вот эти 2 на мой взгляд важные. Именно для строгой типизации.
Помню когда-то -Wextra мне не включал их.
А всякие долбоёбы отключают все ворнинги, и потом бегут на говнокод:
"Смотрите, посоны, оно у меня компилицо. Кресты - говнище"
Только они не знают/забывают что там пачка ворнингов идёт.
На ворны надейся, а сам не плошай. Граблей, на которые при всем желании не получится сгенерить ворнинг в крестах хватает. Хотя с другой стороны о типичных ошибках почти всегда предупреждает.
P.S. wall и wextra это необходимый минимум, когда уже все начинающие сишко- и крестописцы это выучат...
А еще я за включение опций, заставляющих компилятор юзать конкретный стандарт. Дабы не залететь потом, случайно поюзав какое-нибудь визуалкоблядство или гццизм.