У меня есть шаблонный класс Helper
, который выглядит следующим образом:
template< typename Mapper >
class Helper
{
public:
using mappedType = ... ;
};
Мне понадобится mappedType
для типа, возвращаемого методом map(const int&)
в классе Mapper
. Для допустимого типа для Mapper
, как показано ниже:
class DMapper
{
public:
double map(const int& val){ ... }
};
Helper<DMapper>::mappedType
должен быть double
. Есть ли способ сделать это без создания экземпляра Mapper
?
Ближайший я получил:
using mappedType = typename std::result_of<
decltype(&Mapper::map)(Mapper const*, const int&)
>::type;
Но type
в этом случае не определяется.
EDIT:
Если я могу избежать использования фиктивного аргумента для int
, это было бы еще лучше (в моем конкретном коде аргумент не так прост).