C ++ Poco - 如何创建NotificationQueue的向量?

问题描述 投票:0回答:1

我想创建一个通知中心,在那里我处理所有notificationsthreads

我无法告诉软件启动我需要多少个notification队列。在run-time期间可能会有所不同。

所以我创建了这个(代码简化):

#include <vector>
#include "Poco/Notification.h"
#include "Poco/NotificationQueue.h"

using Poco::Notification;
using Poco::NotificationQueue;

int main()
{
    std::vector<NotificationQueue> notificationCenter;
    NotificationQueue q1;
    NotificationQueue q2;
    notificationCenter.push_back(q1); //ERROR: error: use of deleted function ‘Poco::NotificationQueue::NotificationQueue(const Poco::NotificationQueue&)’
    notificationCenter.push_back(q2);

    return 0;
}

我得到了error: use of deleted function ‘Poco::NotificationQueue::NotificationQueue(const Poco::NotificationQueue&)’

我明白了我无法复制或指定NotificationQueue

题:

有没有什么方法可以处理NotificationQueue的矢量而不用静态创建它们?

c++ vector notifications poco-libraries deleted-functions
1个回答
2
投票

采取@arynaq评论,一个指针向量将使工作:

#include <memory>
#include <vector>
#include "Poco/Notification.h"
#include "Poco/NotificationQueue.h"

using Poco::Notification;
using Poco::NotificationQueue;

int main()
{
    std::vector<std::shared_ptr<NotificationQueue>> notificationCenter;
    std::shared_ptr<NotificationQueue> q1 = std::make_shared<NotificationQueue>();
    std::shared_ptr<NotificationQueue> q2 = std::make_shared<NotificationQueue>();

    notificationCenter.push_back(q1);
    notificationCenter.push_back(q2);

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.