Передача в шаблон типов аргументов и указателя на функцию

121
31 декабря 2020, 01:10

Для методов класса A, e.g.:

class A{
    int foo(int, bool, int); 
}

Требуется генерировать прокси-функцию в этом же класса А:

void proxy(packed_value* output, packed_value* input)

Где для A.foo будет сгенерировано, e.g.:

void proxy(packed_value* output, packed_value* input) {
    pack(output, 
        foo(unpack(input[0])/*int*/, unpack(input[1])/*bool*/, unpack(input[2])/*int*/));
}

Все это должен делать метод класса A::add_method_to_list и сохранять прокси-метод в контейнер:

template<class Ret, class ...Args>
void add_method_to_list(std::string name, Ret(A::*method)(Args...)) {
    ...
    some_struct proxy_method = {name, &addin::proxy</*method*/???>};
    methods_.push_back(proxy_method);
}

Есть генерация метода:

template<???>
void proxy(packed_value* return_value, packed_value* params) {
    proxy_impl<???>(return_value, params, std::index_sequence_for<Args...>());
}
template<???, std::size_t ...indexes>
void proxy_impl(packed_value* return_value, packed_value* params, const 
std::index_sequence<indexes...> &)
{
    pack(return_value, this->METHOD(unpack<std::decay_t<Args>>(params[indexes])...));       
}

Вопрос: как передать в шаблон генерации прокси-метода информацию как о сигнатуре метода (Args...) так и ссылку на сам метод (METHOD)? Прокси методы будут дергаться по имени другой системой.

READ ALSO
Ссылка на динамический массив в виде аргумента функции

Ссылка на динамический массив в виде аргумента функции

У меня есть динамический массив, пишу функцию для "печати" значенийСоздаю указатель на массив uint8_t в кол-ве count и сразу обнуляю значения:

91
На jQuery по клику удалить часть строки &lt;li&gt;

На jQuery по клику удалить часть строки <li>

Есть выпадающий список ul li, который появляется при клике по полю инпутаДо клика ul li не существует на странице

114
Имитация ввода текста

Имитация ввода текста

В данном коде текст вставляется в форму сразу весьКак сделать что-то на подобии animate(), чтобы пользователь видел как в форме печатается автоматически...

129
Не отображается код клавиш PageDown, PageUp

Не отображается код клавиш PageDown, PageUp

Собственно не отображется код клавиш PageUp, PageDown и 4 стрелки, которые находятся внизу

110