草庐IT

boost-bimap

全部标签

c++ - 我如何从 boost::errinfo_nested_exception 中提取任何信息?

我最近开始使用boost::exception。现在我想使用boost::errinfo_nested_exception打印有关错误原因的信息。问题是我无法弄清楚如何从原因中获取信息。我尝试了以下但没有成功:#include#includestructmyex:publicvirtualboost::exception{};intmain(){myexcause;cause(e);//Icantdothis://conststd::string*file=boost::get_error_info(*c);//Northis://conststd::string*file=boost

c++ - 将 boost::function 传递给模板; boost::function 是什么类

我需要将距离函数传递给模板。因此我使用boost::function和boost::bind。但我不明白我必须为类距离传递什么:templateclassCoverTree{Distancedistance;...public:CoverTree(constDistance&distance):max_level(default_max_level),min_level(default_max_level),distance(distance){}...}模板作者的示例如下所示:floateuclidian(conststd::vector&p1,conststd::vector&p2

c++ - 在 boost python 中使用自定义智能指针

我想使用Boost::Python在python中公开包裹在自定义智能指针中的对象注意事项自定义智能指针的现有使用太普遍了经济地升级到boost智能指针我想使用在多个位置描述的自动取消引用技术问题是我似乎不太正确。这是示例代码:LegacyCode::Ptr->遗留智能指针代码LegacyCode::Session->包裹在遗留智能指针中的遗留对象namespaceboost{namespacepython{templateT*get_pointer(LegacyCode::Ptrconst&p){returnp.get();}templatestructpointee>{typede

c++ - 用 boost::gil 画线?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我需要在(屏幕外)图像上画一些线。我想使用boost::gil,因为该库已集成到我的项目中。我想在二维数组中从起点到终点画一条线谁能给我一个如何使用gil画线的简单示例?谢谢。

c++ - 对 Boost 线程的 undefined reference

我正在尝试编译和使用Boost1.54库,但遇到了死胡同。我编译并安装了文档中提到的库:./bootstrap.sh./b2install我什至尝试使用以下方法完全重新安装:./bootstrap.sh./b2threading=multiinstall我已经使用-lboost_thread和-L*path链接到boost*/bin.v2/libs我仍然收到以下链接器错误:undefinedreferencetoboost::thread::start_thread_noexcept()undefinedreferencetoboost::thread::join_noexcept()

c++ - 从 json 文件构建 boost 属性树性能很差?

我正在使用boost属性树来加载/转储json文件。但是,性能很差。比如我有一个json文件,大小是1.8M。boostC++程序花费3秒加载json文件并构建属性树。如果我用python加载json文件,只需要0.1秒。python也将把所有东西构造为对象。C++程序是这样的:intmain(intargc,char**argv){std::fstreamfin;fin.open(argv[1],std::fstream::in);if(!fin.is_open()){ASSERT(false);}boost::property_tree::ptreept;try{read_json

c++ - 为什么 boost lockfree freelist 大小被限制为最多 65535 个对象?

为什么boostlockfree大小固定为65535个对象?typedefboost::lockfree::queue>MyQueue;MyQueuequeue(1024*100);上面的代码抛出异常。我在代码中找到的原因是基于数组的空闲列表仅支持16位地址空间。这是什么原因?我在64位Linux机器上使用它。那为什么要限制寻址到2**16项呢?队列是否使用“shortint”进行索引?原子指令是否只适用于16位字长?我应该怎么做才能拥有比这更大容量的固定大小队列? 最佳答案 无锁链表的Boost实现必须打ABAproblem.一个

c++ - boost 库中的 Nelder-Mead 算法

我想知道Nelder-Mead算法是否在c++boost库中实现,例如toms748_solve。我在文档中找不到它,在我自己实现代码之前我会问你。非常感谢。 最佳答案 我发现变形虫(Nelder-Meadedownhillsimplex)算法是由vnl库(http://public.kitware.com/vxl/doc/release/core/vnl/html/classvnl__amoeba.html#details)实现的,所以我打算使用这个库而不是boost。我知道我一直在使用boost::math库寻找这个算法的实现,

c++ - boost::filesystem、std::getenv 和并发

假设我有以下代码:#include#includevoidfoo(){constboost::filesystem::wpath&appdata_folder=std::getenv("APPDATA");while(true){boost::this_thread::sleep_for(boost::chrono::milliseconds(500));}}intmain(){boost::threadfirst(foo);boost::threadsecond(foo);first.join();second.join();}它在运行时失败并出现以下错误:*InternalProg

c++ - boost::asio UDP "gather"操作

async_receive()的boost::asio文档声明它支持“一次接收到多个缓冲区”,虽然我可以编写代码,但实际上看不到它是如何(或是否)工作的。我们遇到这样一种情况,我们的一家供应商每秒向我们发送数千个UDP数据包,这足以让我们在某些情况下看到“接收到的数据包被丢弃”数量激增。如果我们真的可以在一次async_receive()调用中填充多个缓冲区,那将是理想的,但在测试过程中,似乎即使指定了多个缓冲区,也只会为一个数据报调用处理程序。我已经包含了我的测试代码,抱歉它太冗长了,但我需要它能够灵活地监听多个接口(interface)/多播。#include#include#in