![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| tilin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2008 Репутация: нет Всего: нет |
Можно ли как-то в VC2005 определить во время компиляции какой тип имеют параметры функции, чтобы потом использовать этот тип при специализации шаблона. Естественно определить автоматически, а не посмотреть и ручками прописать.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Можно - используя соответствующие шаблоны. Например из boost. Ты бы задачу поконкретнее поставил, тогда глядишь что дельное и присоветуют. Кстати, компилятор здесь не при чем. Перенесу-ка в Общие вопросы, там больше шансов получить совет по шаблонам. Но задачу все же сформулируй.
-------------------- ... |
|||
|
||||
| tilin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2008 Репутация: нет Всего: нет |
Требуется Call(объект, метод, параметр, параметр,...) представить в виде объекта содержащего вызов у которого есть функция которая этот вызов производит. Т.е. надо чтобы типы параметров и возвращаемого значения при формировании объекта содержащего вызов определялись автоматически на этапе компиляции.
|
|||
|
||||
| tilin |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2008 Репутация: нет Всего: нет |
Автоматически не догнал как сделать, реализовал вот так вот. Может что присоветуете? Было бы хорошо обернуть создание CallObject в макрос, но в макрос надо подставлять параметры функций, соответственно макрос должен работать с переменным числом параметров. Чтобы вместо
можно было писать
Это возможно (компилятор VC2005)?
Это сообщение отредактировал(а) tilin - 26.10.2009, 13:29 |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Смотри в boost::function, там есть нечто подобное
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |