![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Rififi, не могу одобрить... нестандартно, требует дополнительный код. Ссылка, имхо, лучше.
|
|||
|
||||
MTWizard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.10.2007 Где: Київ Репутация: 3 Всего: 4 |
В bool по стандарту лежат только true и false. Там нет чисел (пункт 3.9.1/6). true конвертируется в число 1, false в 0 (пункт 4.5/4). Для этих чисел получим 1^1 = 0 -> false, 0^1 = 1 -> true (как ты сам привёл в цитате). Так что всё по стандарту ![]() Это сообщение отредактировал(а) MTWizard - 14.5.2008, 19:03 |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
А как насчет варианта перепроектировать это дело чтобы не надо было тянутся за переменными (я так понимаю там не только тот bool ![]() ![]() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
Alek86 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
прога не моя и немного великовата для перепроектирования и даже если была бы моя и сравнительно мелкая, то перепроектиролвать удобнее вряд ли можно было это единственное, чего я добивался и вообще весь вопрос был - как ПОПРОЩЕ стандартно инвертировать переменную про ссылки и доп. функции смотрите первый пост ЗЫ. жаль, что читающий такой код
будет долго вдуплять, что сие значит придется таки функцию писать :( |
||||
|
|||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
если у тебя так наверно будет симпатичней :
P.S. про ссылки прочитал, а вот про функции упустил - сбило std::negate - она же функция плюс к тому же ИМХО любой код несуший самостоятельную логику должен быть разгружен (посредством функции) Это сообщение отредактировал(а) mes - 19.5.2008, 01:00 |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
значит он неправильно профессию выбрал ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
перефразирую читаться такой текст будет намного хуже, чем
да, это и правда получше ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Всё он правильно выбрал ![]() ![]() Такой текст тоже очень плох. Ф-ция на то и ф-ция, чтобы что-то брать на вход и что-то выдавать на выход, а не модифицировать свои входные данные. Есть конечно случаи когда это целесообразно(и примеров этому куча), но, не думаю, что в данном случае. Чем, блин? ![]() Самый лучший и понятный вариант - это с ссылкой. Он 1. понятен. 2. не уступит в производительности варианту с ^=(особенно в случае с preferences - не думаю, что кто-то станет редактировать preferences миллионы раз в секунду). 3. на случай опасности случайно изменить значение по ссылке ей можно дать ограниченную область видимости Ребят, пишите так чтобы потом (хотя бы) самим понятно было... Я с месяца полтора назад на скорую руку наклепал одну программу. Точнее говоря на скорую руку наклепал я одну её часть. Пару дней назад мне пришлось добавлять ф-ционал как раз в эту часть. И, несмотря на то, что у меня там не было таких вещей как ^= и им подобных, я половину рабочего дня(!!) сидел и пытался одуплить 1. как эти 30 строк вообще работают 2. каков необходимый результат(от этих строк) 3. как переделать так чтобы помимо добавления ф-ционала результат остался тем же -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
С этим не могу согласиться. Имхо, дело привычки. к тому же если функция названа negate, лично я ее перевожу как "поменять значение на противоположное" а не "вернуть противоположное" |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |