Я не понял, почему у меня есть эта ошибка ..
Все необходимые библиотеки уже включены в другой .h
у меня есть Rsh.h
с :
class Rsh
{
private:
map<string, int(*)(const string &, FILE*)> supportedCmds;
public:
Rsh ();
~Rsh ();
void setup ();
};
И Rsh.cpp с:
void Rsh::setup()
{
// Fill up list of supported commands
supportedCmds["cd"] = &Rsh::ashCd;
supportedCmds["ls"] = &Rsh::ashLs;
supportedCmds["pwd"] = &Rsh::ashPwd;
supportedCmds["history"] = &Rsh::ashHistory;
supportedCmds["exit"] = NULL;
}
И выходное сообщение g ++ выглядит так:
src/Rsh.cpp:24:26: error: assigning to 'mapped_type' (aka 'int (*)(const
std::__1::basic_string<char> &, __sFILE *)') from incompatible type 'int (Rsh::*)(const
string &, FILE *)'
supportedCmds["cd"] = &Rsh::ashCd;
^~~~~~~~~~~
src/Rsh.cpp:25:26: error: assigning to 'mapped_type' (aka 'int (*)(const
std::__1::basic_string<char> &, __sFILE *)') from incompatible type 'int (Rsh::*)(const
string &, FILE *)'
supportedCmds["ls"] = &Rsh::ashLs;
^~~~~~~~~~~
src/Rsh.cpp:26:26: error: assigning to 'mapped_type' (aka 'int (*)(const
std::__1::basic_string<char> &, __sFILE *)') from incompatible type 'int (Rsh::*)(const
string &, FILE *)'
supportedCmds["pwd"] = &Rsh::ashPwd;
^~~~~~~~~~~~
src/Rsh.cpp:27:29: error: assigning to 'mapped_type' (aka 'int (*)(const
std::__1::basic_string<char> &, __sFILE *)') from incompatible type 'int (Rsh::*)(const
string &, FILE *)'
supportedCmds["history"] = &Rsh::ashHistory;
^~~~~~~~~~~~~~~~
4 errors generated.
Какие-либо предложения ?
Исправлено с помощью: map<string, int(Rsh::*)(const string &, FILE*)> supportedCmds;
Спасибо @WhiZTiM
Задача ещё не решена.
Других решений пока нет …