C++ Poco - 如何创建 NotificationQueue 的向量?
C++ Poco - How to create a vector of NotificationQueue's?
我想创建一个通知中心,我在其中处理所有notifications
到threads
。
我无法在软件启动时说出我需要多少 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
的向量而不用静态创建它们?
接受 @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;
}
我想创建一个通知中心,我在其中处理所有notifications
到threads
。
我无法在软件启动时说出我需要多少 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
的向量而不用静态创建它们?
接受 @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;
}