草庐IT

boost-polygon

全部标签

c++ - boost::unique_lock 和 boost::shared_lock 用于读写锁

我们已经实现了读写锁typedefboost::unique_lockWriterLock;typedefboost::shared_lockReadersLock;我们有很多多线程读者而只有少数作家。读者与其他读者共享访问权限,但阻止作者访问。Writer阻塞,直到它具有对该资源的独占访问权限。我们无法在boost文档中找到它...防止Writer饥饿的策略是什么?例如,如果有很多读者都从一个线程池中获取锁,那么在写者最终获得锁之前,锁尝试次数是否有上限?我们看到的性能数字似乎表明写入必须等到根本没有读者,并且在极少数情况下会等待很长时间,因为新读者可以在当前读者正在接受服务时请求锁

c++ - 使用 boost 将 C++ 对象传递给 python

我正在尝试弄清楚如何使用boostpython在C++中创建一个对象并将其传递给Python。我已设法做到这一点,但无法进行垃圾回收。假设类A是在C++的某处定义的。passNewAToPython()函数是从代码中的其他地方调用的,该代码创建一个A对象,然后将其传递给Python中的回调函数。我希望将该特定实例传递给python而不是拷贝,因此使用ptr()staticPyObject*pythonCallbacks;voidpassNewAToPython(){A*a=newA();PyGILState_STATE_GILState=PyGILState_Ensure();//Sh

c++ - 使用boost.python在cygwin中手动构建python扩展

抱歉,这么笼统的标题,但我不太确定我到底缺少什么或做错了什么。我的目标是使用cygwin下的boost.python构建python扩展,并避免使用boost.build工具而不是boost.build工具。后一种方法为我工作的很好,但是现在我想这样做。我通过谷歌搜索和寻找相似的主题解决了许多问题,这有助于我找出一些技巧并向前迈进。但是在最后一步似乎存在一些问题。我将尝试详细描述我的所有步骤,以希望本文对将来的其他人有所帮助,并更好地描述设置。因为我不太确定python和boost的原始安装(来自各个cygwin存储库),所以我决定从头开始将其安装在主目录中,所以我要这样做:首先安装p

c++ - Boost.Multiprecision cpp_int - 转换成字节数组?

http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html我刚刚开始探索这个图书馆。似乎没有办法将cpp_int转换为字节数组。有人能看到这样的功能吗? 最佳答案 这是无证方式。cpp_int的后端有limbs()成员函数。此函数返回内部字节数组值。#include#includenamespacemp=boost::multiprecision;intmain(){mp::cpp_intx("11111111112222222222333

c++ - 在 C++ 中使用 Boost 正则表达式缩小 HTML

问题如何使用C++压缩HTML?资源外部库可能是答案,但我更希望改进我当前的代码。尽管我很期待其他可能性。当前代码这是我对thefollowinganswer的C++解释.我必须从原始帖子更改的唯一部分是顶部的这部分:“(?ix)”...和一些逃生标志#includevoidminifyhtml(string*s){boost::regexnowhitespace("(?ix)""(?>"//Matchallwhitespansotherthansinglespace."[^\\S]\\s*"//Eitherone[\t\r\n\f\v]andzeroormorews,"|\\s{2,

c++ - 使用 boost 创建相对路径

我正在尝试使用boost创建相对路径。我最初的计划是:stringbase_directory;//inputboost::filesystem::pathbase_path;stringother_directory;//inputboost::filesystem::pathother_path;//assumebase_pathisabsolute-didthatalready(usingcomplete()//ifpathisrelative,torootitinthecurrentdirectory)->base_directory=base_path.string();if

c++ - 在Boost Phoenix中获取局部变量的类型

我如何获取作用域BoostPhoenix语句中使用的局部变量的类型?使用Phoenix和Proto,我可以提取Phoenix表达式的多个方面。例如,以下代码公开了元数(3);标签类型(lambda_actor);和Phoenixlambda表达式的child-2标签类型(shift_left):#include#includenamespaceproto=boost::proto;namespacephoenix=boost::phoenix;usingnamespacephoenix::local_names;structFoo{constcharstr[6]="Ok.\n";};i

c++ - 使用 XCODE 4.6.1 的 boost - 正确的build设置是什么?

我下载了boost1.53并解压到Users/user/Desktop/boost_1_53_0我按照以下说明成功地将boost构建为静态库:http://libcinder.org/docs/v0.8.5/_cinder_boost.html我将XCODE的“BuildSettings”“HeaderSearchPaths”更改为/Users/user/Desktop/boost_1_53_0,将“LibrarySearchPaths”更改为Users/user/Desktop/boost_1_53_0/stage/lib然后我构建并得到错误:我遇到的第一个错误是“has_binar

c++ - Boost 图切割上的 3 个类(0、1、4)

当我使用BGLboykov_kolmogorov_max_flow()函数时,我得到了奇怪的结果。我虽然会看到2个类别(0-1或其他任何类别,但只有2个!)但我经常看到三个类别:0、1和4。例如,使用下面的图像来源:左边框中间像素sink:右边框中间像素水平边成本=10*e^(rightPixel/50)垂直边缘代码=0.1。我得到以下结果:4444444444444000000000000000004444444444444400000000000000004444444444444400000000000000004444444444444400000000000000004444

c++ - Boost 序列化给出未定义的类型 'boost::STATIC_ASSERTION_FAILURE'

我正在学习使用boost将我的一些C++类序列化。我在接口(interface)中有一个结构。我使用boostserilaize函数像这样序列化这个结构。接口(interface).hstructX{constLongrate;}templatevoidserialize(Archive&ar,uint32version){ar&this->rate;}BOOST_CLASS_EXPORT(X);现在这个头文件将被我的主类使用。比方说main.cpp,这个主类的标题有主要.h#include"Interface.h"classMain{//somestufftemplatevoidse