草庐IT

boost_cache_relationships

全部标签

c++ - 如何使用 Boost 库更改文件权限?

如何使用Boost库将文件的权限更改为只读?有一些问题我已经看过了,比如this和this,但我还是不知道怎么做,我试过了boost::filesystem::wpathpath=L"abc.txt";if(boost::filesystem::exists(path)&&boost::filesystem::is_regular_file(path)){boost::filesystem::file_statuss=boost::filesystem::status(path);/*hereIneedtosetfilepermissitonstoREADONLYfor`path`fi

c++ - 错误 : The following Boost libraries could not be found

我正在使用cmake和boost制作visualstudio解决方案。我的命令是:F:\C++\yapimpl\build>cmake..-G"VisualStudio11"-DBOOST_ROOT=E:\lib\lib\boost_1_54_0-DBOOST_LIBRARYDIR=E:\lib\lib\boost_1_54_0\bin\vc11\lib尽管我设置了BOOST_LIBRARYDIR和BOOST_ROOT,它仍然显示boost_unit_test_framework找不到。目录E:\lib\lib\boost_1_54_0\bin\vc11\lib确实包含这些文件:08/

c++ - boost:初始化共享指针重置与 make_shared

除了生成代码的大小之外,使用reset()初始化函数make_shared()上的共享指针有什么区别?案例1使用reset()boost::shared_ptrpA;pA.reset(newA());案例2使用make_shared()boost::shared_ptrpA;pA=boost::make_shared();一般来说,使用reset而不是make_shared来减小可执行文件的大小是否是一个好习惯? 最佳答案 reset(newT(...))分配一个堆block,构造对象,为引用计数器分配一个新的堆block并初始化引

c++ - Boost::any 和多态性

我正在使用boost::any来存储指针,想知道是否有一种提取多态数据类型的方法。这是一个简单的示例,说明理想情况下我想做什么,但目前行不通。structA{};structB:A{};intmain(){boost::anya;a=newB();boost::any_cast(a);}这失败了,因为a正在存储一个B*,而我正在尝试提取一个A*。有办法实现吗?谢谢。 最佳答案 Boost.DynamicAny是Boost.Any的变体,它提供更灵活的基础类型动态转换。从Boost.Any中检索值需要您知道存储在Any中的确切类型,而

c++ - boost 最佳实践?

我已经使用了相当多的Boost图形库,但其余部分用得不多。我经常在这里看到使用Boost的某些部分的建议(例如,Boost的各种智能指针)。显然Boost很好用。它也很大或多种多样。有谁知道常见问题解答或体面的最佳实践文档可以帮助知识渊博的C++程序员更好地使用Boost? 最佳答案 您可能会找到https://stackoverflow.com/questions/379290/how-to-learn-boost有用。但总的来说,请记住Boost不是一个库,而是一个库的集合。这意味着您可以而且应该使用它的一部分,但可能不是全部。

c++ - 使用默认值而不是异常来 boost numeric_cast<>?

每当boost的numeric_cast转换失败,抛出异常。boost中是否有类似的模板让我指定一个默认值,或者在这种情况下捕获异常是我唯一能做的?我不太担心所有额外异常处理的性能,但我宁愿使用标准模板也不愿编写无用的包装函数。另外,根据以往的经验,我认为boost很有可能真的有我想的,只是一直没有找到。 最佳答案 numeric_cast函数只是调用boost::numeric::converter具有默认参数的模板类。其中一个参数是OverflowHandler,默认值为def_overflow_handler,但您可以指定si

c++ - Boost weak_ptr在多线程程序中实现资源池

我正在考虑使用boost::weak_ptr来实现一个对象池,这样当没有人使用其中一个对象时,它们就会被回收。不过,我担心的是,它是一个多线程环境,而且似乎在指向超出范围的对象的最后一个shared_ptr与从weak_ptr构造的新shared_ptr之间存在竞争条件。通常,您会使用锁或其他东西来保护此类操作;然而,这里的重点是您不知道shared_ptr何时可能超出范围。我对boost::shared_ptr和boost::weak_ptr有什么误解吗?如果没有,有人对做什么有什么好的建议吗?谢谢。安德鲁 最佳答案 要使用wea

c++ - Boost::Signals 的意义何在?

首先,我是一个绝对的编程初学者,所以不要太取笑我。我见过的唯一用于信号的是GUI工具包,而GUI工具包都带有自己的信号。那么,Boost:Signals甚至可以与这些GUI工具包一起使用吗?这是个好主意吗?信号还有哪些其他应用? 最佳答案 Signals是一种事件消息传递实现,很像Smalltalk/ObjectiveCMessages或各种其他(例如C#)语言中的Events。您可以将它们用于各种各样的任务,请查看ObserverPattern为什么要使用观察者模式?好处主要是组织性的,当您使用大型应用程序时,应用有助于保持开发团

c++ - 为什么 boost 推荐使用核心函数而不是成员函数?

在boost.geometry的文档中它指出Note:preferusingx=bg::get:(point1);(asopposedtox=point1.get();)我在boost文档的其他地方看到过这个。我的问题是为什么?这是最佳实践、性能还是一些怪癖?它是通用规则还是特定于该库? 最佳答案 它本身不是boost,而是现代C++API设计。由于不需要成员函数,您可以调整自己的类甚至第三方库类型以与您选择的boostApi一起使用。(这样您就可以将第三方库中的类型序列化为Boost序列化存档)。此外,通过使函数成为自由函数,可以

c++ - 正确的 BOOST_FOREACH 用法?

当使用BOOST_FOREACH时,下面的代码安全吗?BOOST_FOREACH(conststd::string&str,getStrings()){...}...std::vectorgetStrings(){std::vectorstrings;strings.push_back("Foo");...returnstrings;}或者我应该在调用BOOST_FOREACH之前获取容器的拷贝,例如:conststd::vectorstrings=getString();BOOST_FOREACH(conststd::string&str,strings){...}在第一个示例中,B