Questions tagged «boost»

Boost是大量用于C ++的高质量库的集合。Boost是免费的,通常被视为“第二标准库”。

6
为此得到一个boost :: shared_ptr
我boost:shared_ptr在代码中广泛使用。实际上,分配在堆上的大多数对象都由持有shared_ptr。不幸的是,这意味着我无法传递this带有的任何函数shared_ptr。考虑以下代码: void bar(boost::shared_ptr<Foo> pFoo) { ... } void Foo::someFunction() { bar(this); } 这里有两个问题。首先,由于T *的T *构造函数shared_ptr是显式的,因此不会编译。其次,如果我强迫它与之一起构建,bar(boost::shared_ptr<Foo>(this))我将创建指向我的对象的第二个共享指针,该指针最终将导致两次删除。 这使我想到了一个问题:是否存在任何标准模式来从这些对象之一的方法内部获取您知道的现有共享指针的副本?使用介入式引用是我唯一的选择吗?
76 c++  boost 

1
如何通过成员函数使用Boost绑定
以下代码导致cl.exe崩溃(MS VS2005)。 我正在尝试使用boost绑定来创建函数来调用myclass的方法: #include "stdafx.h" #include <boost/function.hpp> #include <boost/bind.hpp> #include <functional> class myclass { public: void fun1() { printf("fun1()\n"); } void fun2(int i) { printf("fun2(%d)\n", i); } void testit() { boost::function<void ()> f1( boost::bind( &myclass::fun1, this ) ); boost::function<void (int)> f2( boost::bind( &myclass::fun2, this ) ); //fails f1(); f2(111); } …


4
使用boost :: shared_ptr进行static_cast?
static_cast与with等效boost::shared_ptr吗? 换句话说,我该如何重写以下内容 Base* b = new Derived(); Derived* d = static_cast<Derived*>(b); 什么时候使用shared_ptr? boost::shared_ptr<Base> b(new Derived()); boost::shared_ptr<Derived> d = ???

15
使用Boost读写XML文件
使用Boost来读写XML文件有什么好的方法(也是一种简单的方法)? 我似乎找不到任何简单的示例来使用Boost读取XML文件。您能指出一个使用Boost读写XML文件的简单示例吗? 如果没有Boost,是否有任何您可以推荐的良好简单的库来读写XML文件?(必须是C ++库)
71 c++  xml  boost 


6
使用属性树在Boost中创建JSON数组
我正在尝试使用boost属性树创建一个JSON数组。 该文档说:“ JSON数组被映射到节点。每个元素都是一个具有空名称的子节点。” 因此,我想用空名称创建一个属性树,然后调用write_json(...)将数组取出。但是,文档没有告诉我如何创建未命名的子节点。我尝试过ptree.add_child("", value),但这会产生: Assertion `!p.empty() && "Empty path not allowed for put_child."' failed 该文档似乎没有解决这一点,至少我无法确定。有人可以帮忙吗?


8
我应该从使用boost :: shared_ptr切换到std :: shared_ptr吗?
我想在中启用GCC中对C ++ 0x的支持-std=c++0x。在GCC 4.5(以及不久的4.6)中,我并不一定需要任何当前受支持的C ++ 11功能,但是我想开始习惯它们。例如,在一些我使用迭代器的地方,一种auto类型会很有用。 但是同样,我不需要任何当前支持的功能。目的是鼓励我将新标准的功能纳入我的编程“词汇表”中。 从对C ++ 11支持的了解来看,在GCC中启用它,然后例如通过boost::shared_ptr将使用从切换为std::shared_ptr单独使用,而不是两者混合使用,将其包含进来,是一个好主意吗? PS:我知道这个比较不同口味的好问题,shared_ptr但我想在标准定稿之前就使用哪种更高层次的建议提出建议。换句话说,当像GCC这样的编译器说它支持“实验功能”时,是否意味着我很可能在编译期间遇到奇怪的错误,而这将是主要的时间消耗,并且是StackOverflow上的一些神秘问题的来源? 编辑:我std::shared_ptr之所以决定从此退回,因为我不信任它在GCC 4.5中的支持,如本问题中的例子所示。
69 c++  boost  stl  c++11  shared-ptr 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.