Мне нужно вычесть тип возвращаемого значения функции-получателя. Этот метод получения передается как указатель на функцию в списке шаблонов.
Таким образом, метод получения выглядит следующим образом:
using TGetter = std::function<std::string(Me*)>;
std::string getter(Me* me)
{
return std::string("string");
}
Класс шаблона
template<typename TGetter>
class Handler
{
public:
Handler(TGetter getter)
:m_getter(getter)
{};
using TValue = std::string; //decltype(TGetter()); <- something like that I want to get
private:
TGetter m_getter;
...
bool handler();
Реализация выглядит так:
Handler<TGetter> h(getter);
Я хочу объявить TValue
в зависимости от типа возвращаемого значения получателя. Так что std::string
как для геттера в примере. У меня будут разные типы геттеров и палочек, чтобы объявить соответствующий тип просто как TValue value;
внутри класса.
using TValue = decltype(TGetter());
преобразуется в указатель на функцию.
Не могли бы вы помочь мне? чтобы все правильно, спасибо.