Определить подписи перегруженных функций-членов

Дано some_type с функцией-членом f можно определить fВот подпись (и скажем, давайте поместим ее в кортеж):

template <typename R, typename T, typename... A>
std::tuple<R, A...> signature_of_impl(R (T::*)(A...));

template <typename T>
using signature_of_member_f = decltype(signature_of_impl(&T::f));

struct some_type
{
int f(char, float);
};

using some_type_f_signature = signture_of_member_f<some_type>;

Это явно плохо, если f перегружен Можно ли определить сигнатуры всех существующих перегрузок f в some_type?

0

Решение

Вы можете «спросить» компилятор о типе конкретной функции.

Но нет отражение в C ++ нельзя запросить, какие функции или даже перегрузки одной и той же функции существуют в классе.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]