@Bratis4ka

Как в std::map в ячейку «значение» положить функцию?

const std::map <QString, std::function<void()>> availableCommands =
            {
                {"start", ?},
                {"close", close()},
                {"restart", &Admin::ServerManager::restart},
                {"info", &Admin::ServerManager::info},
                {"help", &Admin::ServerManager::help},
            };

У меня есть следующий фрагмент кода. Мне нужно положить в ячейку "значение" функцию, которая возвращает void и ничего не принимает [ void func()]. Я пытался это сделать разными способами, но у меня не получается. Как мне это сделать? Подскажите, пожалуйста.
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
xorknown
@xorknown
Будут проблемы - решайте
В c++ у нестатических функций класса всегда неявно присутствует аргумент который является указателем на объект класса. Таким образом у вас у указателя на функцию start тип -> void (*) (Admin::ServerManager*).

Вам каким-то образом надо передавать этот указатель, либо исправить что-то в определении функций, для примера можно использовать лямбда функции которые будут содержать в себе указатель.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы