I have a problem with this code - this is taskData:
static std::map<int8_t, std::vector<Task>> taskData;
and there is a problem:
taskData.emplace(pi::enumerations::taskManager::taskCategory_t::SECURITY, std::vector<Task>{FirefightingTask()});
FirefightingTask:
#pragma once
#include "Task.hpp"
namespace mc
{
    class FirefightingTask :public Task
    {
    public:
        FirefightingTask( uint8_t category = 0, uint8_t kind = 0, NPC* npc = nullptr );
        virtual bool act() override;
    };
}
Task:
#pragma once
#include "engine/Config.hpp" 
#include <queue>
class NPC;
namespace mc
{
    //Task
    //Represents a task for AI object
    class Task
    {
    public:
        Task(uint8_t category = 0, uint8_t kind = 0, NPC* npc = nullptr );
        uint8_t GetCategory()
        {
            return category;
        }
        uint8_t GetKind()
        {
            return kind;
        }
        bool operator==( const Task& second )
        {
            return this->kind == second.kind;
        }
        bool inProgress()
        {
            return doing;
        }
        virtual bool act() = 0;
    private:
        bool doing;
        const int8_t category;
        const int8_t kind;
        NPC* owner;
    };
}
and the error is:
Error C2259 'mc::Task': cannot instantiate abstract class
I really don't know why I get this error. When I remove this line:
        taskData.emplace(pi::enumerations::taskManager::taskCategory_t::SECURITY,std::vector<Task>{FirefightingTask()});
it works without problems :/
 
     
     
    