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

reDefine функции - C++

Восстановить пароль Регистрация
 
CodeGrinder
 Аватар для CodeGrinder
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 17
02.11.2011, 18:37     reDefine функции #1
Здравствуйте, коллеги!

Вот никак не могу понять, как правильно перенаправить вызов функции, с неопределенным числом параметров.

Вот собсно перехват:
C++
1
#define LogErr(str, ...) _tprintf(str, <еще один параметр, если он есть>);


А вот варианты использования:

C++
1
2
LogErr(_T("Option value for [\"%s\"] is invalid!"), lpszName); 
LogErr(_T("Some other error!"));

Руки чешутся прям написать:
C++
1
#define LogErr(...) _tprintf(...);
Но низзя))

Помогите, кто может! Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
02.11.2011, 18:41     reDefine функции #2
Цитата Сообщение от CodeGrinder Посмотреть сообщение
Здравствуйте, коллеги!

Вот никак не могу понять, как правильно перенаправить вызов функции, с неопределенным числом параметров.

Помогите, кто может! Заранее благодарен.
Если вы пишите на С, то в С есть такая синтаксическая конструкция, как макросы с переменным числом параметров. Насколько я знаю, в С++ аналогичный результат для макросов получить нельзя. Именно этим и вызвано, что в стандарт С включили макросы с переменным числом параметров.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
02.11.2011, 18:43     reDefine функции #3
http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html

Цитата Сообщение от CodeGrinder Посмотреть сообщение
Руки чешутся прям написать:
ну если сильно чешутся, то пиши как-то так:
C
1
#define LogError _tprintf
но смысла особого в этом я не вижу
CodeGrinder
 Аватар для CodeGrinder
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 17
03.11.2011, 10:25  [ТС]     reDefine функции #4
Цитата Сообщение от Nameless One Посмотреть сообщение

Спасибо за ссылку! Как раз то, что нужно!)
Yandex
Объявления
03.11.2011, 10:25     reDefine функции
Ответ Создать тему
Опции темы

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