![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
есть у меня булевская переменная, которая хранится где-то глубоко в структуре
и чтобы достучаться до нее нужно писать что-то типа
есть ли в С++ стандартный способ поменять ее значение, не требующий писать вот ЭТО 2 раза? типа функции std::negate (такой вроде нету), или вообще неизвестной мне конструкции языка (про варианты типа создания временной переменной-ссылки и написания своей функции negate я знаю - интересно легчайшее СТАНДАРТНОЕ решение) |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
g_preferences.m_visualisation.m_chapter_general.m_enable_show_filed_overlaps ^= 1;
Это сообщение отредактировал(а) SergeCpp - 14.5.2008, 14:38 |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
похоже на правду и компилер (MSVC) даже ворнинги не дает но все же спрошу - вы уверены, что это по стандарту и что для любого стандартного компилера <false> ^= 1 будет давать true и <true> ^= 1 будет давать false ? Это сообщение отредактировал(а) Alek86 - 14.5.2008, 13:25 |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
||||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
![]() Это сообщение отредактировал(а) SergeCpp - 14.5.2008, 13:50 |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
а вообще std::logical_not<type>(param)
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
А есть ещё ссылки:
Это так, для развития - "^= 1" лучше в данном случае. |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Не любит автор ссылки с указателями ![]() |
|||
|
||||
Alek86 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
кто тебе сказал эту ересь? ![]() обожаю просто, я добивался именно элементарной операции отрицания жаль, что ее запись неочевидна этот (цитата со стандарта)
и чем же он тут поможет? ![]() а на стандарт ссылку можно? я нашель только
но, вроде твой способ этому не противоречит + Добавлено через 11 минут и 11 секунд хотя нет, противоречит если в true вместо единицы будет двойка, то ^=1 не поможет Это сообщение отредактировал(а) Alek86 - 14.5.2008, 16:38 |
||||
|
|||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
||||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
SABROG, если тема перешла на сцылки со Стандарта, то примеры кода уже не помогут
сцылки нужно только сцылками крыть ![]() |
|||
|
||||
vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
lда то ты к стандарту то пристал? причем стандарт к стандартным оперциям с битами? ступил, думал что он меняет. конечно не поможет ![]() можно так:
|
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
ну это если четное. а для любого числа - что-нить типа
Добавлено через 1 минуту и 52 секунды хотя такому "стандартному" я бы предпочел нестандартое попроще ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |