是否有boost::shared_mutex的C ++ 11等价物。 或者另一种解决scheme来处理在C + + 11多读者/单写作者的情况?
我是新手到c++ 。 使用boost序列化和反序列化std::Map数据的最简单方法是什么? 我发现了一些使用PropertyTree例子,但是对于我来说却很模糊。
我想迭代一个类似“somefiles * .txt”的目录中的所有文件。 boost :: filesystem是否有内置的东西来做到这一点,或者我需要一个正则expression式或对每个叶子()?
自从我开始使用这个网站以来,我一直听说Boost图书馆。 我想知道什么是Boost库的一些主要好处(因此为什么要使用它)以及Boost库的便携性如何?
很多C ++问题的答案都包含了这个答案: “你应该使用boost::(插入你最喜欢的智能指针在这里),或者甚至更好的提振::(插入你最喜欢的兆复杂的提升types在这里)” 我完全不相信这对提问者来说有什么好处,总的来说,他们是明显的C ++新手。 我的理由如下: 使用智能指针而不理解底层的情况会导致一代C ++程序员缺乏程序员的一些基本技能。 这些似乎已经发生在Java领域了。 决定使用哪种types的智能指针非常依赖于正在解决的问题域。 这几乎总是从这里发布的问题中丢失,所以简单地说“使用共享指针”可能是最没有帮助,可能是完全错误的。 Boost尚未成为C ++标准的一部分,可能无法在提问者使用的特定平台上使用。 安装它有点痛苦(我刚刚使用了Jam ),如果你想要的只是一些聪明的指针,那就太过分了。 如果您正在编写FOSS代码,那么您不希望代码严重依赖于外部库,而您的用户可能再也没有这些库。 由于拜占庭式的库之间的依赖关系的复杂性,我已经在很多场合使用了FOSS代码。 总而言之,我并不是说不推荐Boost,但是这样做时我们应该更加小心。
我需要使用boost :: disjoint_sets,但文档不清楚。 有人可以请解释每个模板参数意味着什么,也许给一个小例子代码创build一个disjoint_sets? 根据请求,我使用disjoint_sets来实现Tarjan的离线最小公共祖先algorithm ,即 – 值types应该是vertex_descriptor。
在我的线程(使用boost :: thread)我需要检索当前时间在毫秒或更less,并转换为MS: 其实,在这里阅读我发现这个: tick = boost::posix_time::second_clock::local_time(); now = boost::posix_time::second_clock::local_time(); 而似乎工作,但我需要有一个毫秒的现在长时间的价值… 我该怎么做?
我明白如何使用weak_ptr和shared_ptr 。 通过计算对象中引用的数量,我明白shared_ptr是如何工作的。 weak_ptr如何工作的? 我试着通过boost源代码阅读,并且我不太熟悉提高,以了解它使用的所有东西。 谢谢。
似乎我无法得到这个工作。 我做了一个简单的控制台应用程序(这取决于websocket++库)需要Boost库..但是当我尝试编译我得到: 致命错误LNK1104:无法打开文件'libboost_system-vc110-mt-gd-1_51.lib' 但是,我做了在(boost_root)/stage/libs创buildlib的bjam,并且将path链接到了C++/Additionnals includes的编译器。 如果我查看(boost_root)/stage/libs文件libboost_system-vc110-mt-gd-1_51.lib不存在。 它被称为libboost_system-vc110-mt-sgd-1_51.lib 。 任何想法?
使用make_shared<T>()而不是使用shared_ptr<T>(new T)有什么缺点make_shared<T>() ? 提升文档状态 用户反复请求一个工厂函数,该函数创build一个给定types的对象并返回一个shared_ptr给它。 除了方便和风格之外,这样的函数也是exception安全的,速度也相当快,因为它可以为对象和相应的控制块使用一个单独的分配,消除了shared_ptr构造开销的重要部分。 这消除了关于shared_ptr的主要效率投诉之一。