Я пытаюсь определить «универсальный» указатель на функцию-член, которую можно использовать для доступа к различным функциям-членам в определенном классе, следующим образом:
class Security{
inline std::vector<double> member_function(const std::string &input_data_string){ return ... a vector<double>....;};
};
Я определяю универсальный указатель на функцию-член, которую можно использовать для доступа к функциям «OTHER», а также с разными типами возвращаемых значений и параметрами разных типов, используя boost :: variable.
typedef boost::variant<std::string,double, std::vector<double>, std::vector<std::string>> (Security::*ptr_sec_fn)(boost::variant<std::string,double, std::vector<double>, std::vector<std::string>> );
Затем присвоение указателя функции-члену
ptr_sec_fn=&Security::member_function;
Это ошибка, которую я получаю:
cannot convert from 'std::vector<_Ty> (__thiscall Security::* )(const std::string &)' to 'boost::variant<T0_,T1,T2,T3> (__thiscall Security::* )(boost::variant<T0_,T1,T2,T3>)'
1> with
1> [
1> _Ty=double
1> ]
1> and
1> [
1> T0_=std::string,
1> T1=double,
1> T2=std::vector<double>,
1> T3=std::vector<std::string>
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Не могли бы вы помочь мне определить, что я делаю здесь неправильно? Большое вам спасибо.