Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.63
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
#1

Макрос UNREFERENCED_PARAMETER бесполезен? - C++

14.12.2012, 16:26. Просмотров 4817. Ответов 29
Метки нет (Все метки)

C++
1
#define UNREFERENCED_PARAMETER(P)          (P)
Зачем нужны подобные макросы? Это же бессмысленно

Добавлено через 25 минут
вверх
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 16:26     Макрос UNREFERENCED_PARAMETER бесполезен?
Посмотрите здесь:

Макрос C++
Если макрос на VBA переписать на С++, то макрос станет работать быстрее? C++
Макрос на с++ C++
Разработайте макрос C++
Сложный макрос C++
C++ макрос препроцессора
C++ Макрос TRACE
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2012, 19:41     Макрос UNREFERENCED_PARAMETER бесполезен? #21
Цитата Сообщение от gray_fox Посмотреть сообщение
Здесь можно просто имя параметра опустить, макрос не нужен.
Ок. Возможно. В данном случаи зависит от стиля программиста. Но вот тот случай, где Не выкрутишься
C++
1
2
3
4
5
6
7
8
9
10
11
int fun(int a, int b)
{
    _ASSERT(b == 0); 
/*
* Мы знаем, что второй параметр всегда ноль, но так как мы не можем рисковать, то              
* как опытный программист ставим здесь ASSERT(так сделают многие). 
* И вот прогнав по всем тестам нашу программу мы со спокойной душой компилим release-версию 
* и получаем варнинги.
*/
    return a + 1;
}
Добавлено через 1 минуту
diagon, а теперь?
Цитата Сообщение от go Посмотреть сообщение
Чтобы в коде можно было легко найти неиспользованные переменные.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.12.2012, 19:49     Макрос UNREFERENCED_PARAMETER бесполезен? #22
Цитата Сообщение от go Посмотреть сообщение
Чтобы в коде можно было легко найти неиспользованные переменные.
Разве что если делать поиск по этому макросу(что маловероятно, ведь зачем искать такие переменные, если они не используются). В обычном просматривании кода коммент в заголовке из-за подсвечивания сразу же бросается в глаза.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2012, 19:56     Макрос UNREFERENCED_PARAMETER бесполезен? #23
Цитата Сообщение от diagon Посмотреть сообщение
Разве что если делать поиск по этому макросу(что маловероятно, ведь зачем искать такие переменные, если они не используются)
Да, да, все так. Но разные ситуации бывают, лично мне не приходилось. Ну например закоментили вы часть кода, вам варнинг пришел. Написали макрос. Все ок. Потом раскоментили ту часть кода, когда он опять нужен и все ок. (А если бы закоментили объявление переменной(при этом попотев и найдя это объявление, нужно было снова искать что расскоментить, а чтобы найти вникнуть в весь код). Логично?
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.12.2012, 20:10     Макрос UNREFERENCED_PARAMETER бесполезен? #24
Цитата Сообщение от go Посмотреть сообщение
нужно было снова искать что расскоментить
А что там искать? В заголовке функции, тело которой вы пишите.
Цитата Сообщение от go Посмотреть сообщение
вам варнинг пришел
пока функция не финальна, то лучше просто забить на ворнинги.
Цитата Сообщение от go Посмотреть сообщение
Написали макрос. Все ок.
Макрос по определению не ок. Особенно с учетом того, что он находится в каком-то виндовом хедере.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2012, 20:13     Макрос UNREFERENCED_PARAMETER бесполезен? #25
Цитата Сообщение от diagon Посмотреть сообщение
Макрос по определению не ок. Особенно с учетом того, что он находится в каком-то виндовом хедере.
Вы тоже считаете, что компилятор его не выпилит?
Давайте сойдемся на том, что это такой стиль.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.12.2012, 20:43     Макрос UNREFERENCED_PARAMETER бесполезен? #26
Данная техника используется, например, в наследовании. В том же wxWidgets. Там для обработки событий нужно переопределять виртуальную функцию, которая получает в качестве параметра объект класса "событие". Но очень часто бывает, что в обработчике обращаться к этим объектом просто нет необходимости.
gray_fox
What a waste!
 Аватар для gray_fox
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
14.12.2012, 22:45     Макрос UNREFERENCED_PARAMETER бесполезен? #27
Цитата Сообщение от go Посмотреть сообщение
Но вот тот случай, где Не выкрутишься
Ну хз, если честно, никогда подобных ситуаций не возникало (Когда параметр не используется, но в то же время по нему надо проверить некий инвариант).
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.12.2012, 23:10     Макрос UNREFERENCED_PARAMETER бесполезен? #28
Вспомнился пример отсюда. (См. начало второго листинга).
Но, разумеется, там используется не макрос а более кошерный вариант.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.12.2012, 00:41     Макрос UNREFERENCED_PARAMETER бесполезен? #29
Цитата Сообщение от diagon Посмотреть сообщение
Вспомнился пример отсюда. (См. начало второго листинга).
вспомнился пример отсюда(см. 2-й метод в файле)

Не по теме:

давайте сюда ещё примеров накидаем, напишем кто чем пользовался и т.д., а то всего 3 страницы темы как-то маловато

Кликните здесь для просмотра всего текста
а чё?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 18:06     Макрос UNREFERENCED_PARAMETER бесполезен?
Еще ссылки по теме:

Реализуйте макрос C++
C++ макрос COMBINE
Макрос-класс? C++
Не работает макрос C++
C++ Не работает макрос

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12535 / 7097 / 797
Регистрация: 27.09.2012
Сообщений: 17,510
Записей в блоге: 2
Завершенные тесты: 1
15.12.2012, 18:06     Макрос UNREFERENCED_PARAMETER бесполезен? #30
Цитата Сообщение от Kgfq Посмотреть сообщение
Зачем? Разве сразу не ясно, что потребуется?
А разве ясно?
Yandex
Объявления
15.12.2012, 18:06     Макрос UNREFERENCED_PARAMETER бесполезен?
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru