У меня есть шаблонный класс 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, это было бы еще лучше (в моем конкретном коде аргумент не так прост).