Код: Выделить всё
Error C3867 'ActionsOnTheDictionary::select': non-standard syntax; use '&' to create a pointer to member
Вот код в main( ):
Код: Выделить всё
std::map< std::string, std::map< std::string, size_t > > mapDictionaries;
using namespace std::placeholders;
ActionsOnTheDictionary A(mapDictionaries);
std::map< std::string, std::function < void(std::map< std::string, std::map< std::string, size_t > >& , std::istream&, std::ostream&) > > command;
{
command["help"] = std::bind(printCommands);
command["create"] = createDictionary, mapDictionaries, _1, _2;
command["delete"] = deleteDictionary, mapDictionaries, _1, _2;
command["list"] = printNamesDictionaries, mapDictionaries, _1, _2;
command["add"] = add, mapDictionaries, _1, _2;
command["unite"] = unite, mapDictionaries, _1, _2;
command["rename"] = rename, mapDictionaries, _1, _2;
command["clear"] = clear, mapDictionaries, _1, _2;
command["select"] = A.select, mapDictionaries, _1, _2; //Error
}
Код: Выделить всё
class ActionsOnTheDictionary
{
public:
ActionsOnTheDictionary(std::map< std::string, std::map< std::string, size_t > > & dictionary);
~ActionsOnTheDictionary() = default;
void select(mapDictionaries_t& mapDictionaries, std::istream& in, std::ostream& out);
private:
std::map< std::string, std::map< std::string, size_t > >& SelectedDictionary;
};
ActionsOnTheDictionary::ActionsOnTheDictionary(std::map< std::string, std::map< std::string, size_t > >& dictionary) :
SelectedDictionary(dictionary)
{}
void ActionsOnTheDictionary::select(mapDictionaries_t& mapDictionaries, std::istream & in, std::ostream & out)
{
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... -to-member