c++11设计模式 对象池模式 可变参数构造 自动析构

当程序中需要用到一定数量的对象,且创建对象开销比较大时可以考虑使用对象池模式。和线程池类型,需要预先创建一定数量的对象,上层使用时可以从池子中获取创建好的对象。本文的对象池模式实现可变参数构造对象,使用完成之后自动析构。

#include <functional>
#include <string>
#include <memory>
#include <iostream>
#include <map>

constexpr int kMaxObjectNum = 10;

template<typename T>
class ObjectPool {
   
 public:
     ObjectPool(int max_object_num = kMaxObjectNum)
        : max_object_num_(max_object_num) {
   }

    template<typename...Args>
    bool Init(size_t const object_num, Args&&...args) {
   
        if (object_num <=0 || object_num > max_object_num_) {
   
            return false;
        }
        auto obj_name = typeid(ObjectType<Args...>).name();
        for (size_t i = 0; i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值