- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以通过非 const 引用使用 boost::object_pool<>::construct?
以下代码段无法编译 (VS2010):
foo::foo(bar & b)
{
}
static boost::shared_ptr<foo> foo::create(bar & b)
{
return boost::shared_ptr<foo>(foo_pool.construct(b),
boost::bind(& boost::object_pool<foo>::destroy, & foo_pool, _1));
}
VS2010 提示无法将 bar & 转换为 const bar &。查看 boost::object_pool<>::construct 原因很清楚:
element_type * construct(const T0 & a0)
虽然我不能使 ctor 参数为 const。有什么技巧可以让 boost::object_pool<> 与我的 foo 类一起工作吗?
最佳答案
使用boost::ref
:
static boost::shared_ptr<foo> foo::create(bar & b)
{
return boost::shared_ptr<foo>(foo_pool.construct(boost::ref(b)),
boost::bind(& boost::object_pool<foo>::destroy, & foo_pool, _1));
}
boost::ref
生成一个 reference_wrapper
。因为它使用指针,所以可以随心所欲地复制它,并隐式取消引用为对原始值的引用。
关于c++ - 如何将 boost::object_pool<>::construct 与非 const 引用一起用作 ctor 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455493/
我想为 std::map 指定 allocator。所以写一个自定义的,从here中获取基本代码约苏蒂斯。我想使用 boost::object_pool 来获得高性能。但是boost::object_
我想创建一个对象池,但我希望它只在我的内存堆的特定段上分配内存。有没有办法使用 boost 来做到这一点? 最佳答案 Boost.Pool 的 object_pool允许用户通过提供 UserAllo
boost::object_pool 是同步的吗? 最佳答案 C++ 没有指定任何关于线程安全的内容,因此如果没有提及,它可能不涉及线程。有时,Boost 提供开箱即用的线程安全的东西,这不是其中之一
在询问 Is there a faster heap allocation/deallocation mechanism available than boost::object_pool? 后,我得
我的应用程序有一个类“MyClass”。它的对象是从 Boost Object_pool 构建的。 我需要通过 Boost 二进制序列化对此类对象进行序列化/反序列化。 用于序列化 - 我从池中取出一
我尝试使用 boost::object_pool 创建一个包含 vector 作为其成员数据的对象。这是代码。 #include #include #include class A { publ
这周我发现了 boost::object_pool 并且惊讶于它比普通的新建和删除快了大约 20-30%。 为了测试,我编写了一个小型 C++ 应用程序,它使用 boost::chrono 为不同的堆
这是一个由以下代码说明的两部分问题: #include #include #include struct Foo { Foo(int i) : _i(i) {} void* oper
我正在尝试实现一个 boost::multi_index 应用程序,但性能非常糟糕:插入 10,000 个对象几乎需要 0.1 秒,这是 Not Acceptable 。因此,当我查看文档并发现 bo
是否可以通过非 const 引用使用 boost::object_pool<>::construct? 以下代码段无法编译 (VS2010): foo::foo(bar & b) { } static
我是一名优秀的程序员,十分优秀!