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

Typedef thiscall метода с переменным числом аргументов - C++

Восстановить пароль Регистрация
 
jr_
6 / 6 / 2
Регистрация: 14.06.2016
Сообщений: 72
Завершенные тесты: 3
02.09.2016, 07:08     Typedef thiscall метода с переменным числом аргументов #1
Добрый день.
Хочу что то типа такого
C++
1
2
3
4
5
6
typedef void *(__thiscall *tThisCall)(void *, ...);
tThisCall method;
 
//...
 
method(object, arg1, arg2);
Естественно, такое можно только для cdecl.
Может быть можно как то используя шаблоны?
Пока додумался только до реализации через метод переходник, но такая реализация мне не нравится т.к. это лишняя трата процессорного времени.
C++
1
2
3
4
5
6
7
8
9
10
template <typename R = void, typename ... T>
static R Invoke(void *method, void *object, const T ... args) {
    R(__thiscall *m)(void *, const T ...);
    (void *&)m = method;
    return m(object, args ...);
}
 
//..
 
Invoke(method, object, arg1, arg2);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2016, 07:08     Typedef thiscall метода с переменным числом аргументов
Посмотрите здесь:

Функции с переменным числом аргументов C++
Шаблоны с переменным числом аргументов C++
C++ Шаблон с переменным числом аргументов, и возвращаемое значение функции
C++ Инициализация std::tuple переменным числом аргументов
C++ Как изменить значение переменной, переданной в списке с переменным числом аргументов
C++ GCC и функции с переменным числом аргументов
C++ Функция с переменным числом аргументов (через шаблоны)
Реализация шаблонного метода с переменным числом параметров C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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