草庐IT

ZN5boost

全部标签

c++ - 如何创建 boost ssl iostream?

我正在向使用boosttcp::iostream(充当HTTP服务器)进行输入和输出的代码添加HTTPS支持。我找到了使用boost::asio::read/boost::asio::write进行SSL输入/输出的示例(并且有一个工作玩具HTTPS服务器),但没有一个使用iostreams和>运营商。如何将ssl::stream转换为iostream?工作代码:#include#include#include#include#include#includeusingnamespacestd;usingnamespaceboost;usingboost::asio::ip::tcp;t

c++ - 使用 boost::python 将回调从 python 传递到 c++

我想将我的python代码中的回调传递给c++我希望我的代码看起来像这样:在C++中:typedefvoid(*MyCallback_t)(CallbackInfo);classMyClass{...voidsetcallback(MyCallback_tcb);...}并在python中使用它:importmylibdefmyCallback(mylib_CallbackInfo):...t=mylib.MyClass()t.setcallback(myCallback)我在我的问题附近看到了一些主题但无法解决例如这里:Realtimeprocessingandcallbackswi

c++ - c++11 中是否有 Boost.Bimap 替代方案?

在C++0x中是否有Boost的bimap的可用替代方案?我想避免使用Boost,但完全接受C++11。如有必要,Boost的bimap的精简版本将适用于我的整个程序(我需要一个常量bimap来在枚举和相应的字符串之间切换)。该map将是编译时常数,因此即使是两个手动维护的map也不是最佳解决方案。谢谢!更新:我在TheCodeProject上找到了这个,但似乎许cocoa能是一个问题:http://www.codeproject.com/KB/stl/bimap.aspx?fid=12042&df=90&mpp=25&noise=3&sort=Position&view=Quick&

c++ - Boost 的 D_WIN32_WINNT 编译器警告

不知道这个错误是怎么回事。在项目属性下的VisualStudio的“命令行”选项中添加了-D_WIN32_WINNT=0x0501,但它说它无法识别它并且仍然出现警告。我也不确定如何添加预处理器定义。1>Pleasedefine_WIN32_WINNTor_WIN32_WINDOWSappropriately.Forexample:1>-add-D_WIN32_WINNT=0x0501tothecompilercommandline;or1>-add_WIN32_WINNT=0x0501toyourproject'sPreprocessorDefinitions.

c++ - (简单) boost 线程组问题

我正在尝试编写一个相当简单的线程应用程序,但对boost的线程库还是陌生的。我正在做的一个简单的测试程序是:#include#includeintresult=0;boost::mutexresult_mutex;boost::thread_groupg;voidthreaded_function(inti){for(;i但是,当我编译并运行这个程序时,我得到了的输出$./test300000test:pthread_mutex_lock.c:87:__pthread_mutex_lock:Assertion`mutex->__data.__owner==0'failed.Aborte

c++ - boost-program-options:无值(value)选项的通知程序

只有当它们具有value_semantic时,才能将通知器用于已解析的选项。给定通知程序自动处理无值选项的最佳方式是什么?简单的方法是使用隐式赋值创建一个虚拟的value_semantic,这样用户就可以在没有值的情况下传递选项。这导致了显式提供值的可能性。如果提供了值,可以添加运行时检查并引发错误。更新:但是,这在有位置选项的情况下不起作用,因为位置选项的值可以跟随无值选项,将异常作为给定值。 最佳答案 俄罗斯程序员论坛上的一个人OXPEHOMETP给了我一个使用boost::program_options::bool_switc

c++ - 是否可以 move boost::optional ?

我一直在尝试在具有boost::optional成员变量的类中定义默认move构造函数。#include#include#includestructbar{std::vectorvec;};structfoo{foo()=default;foo(foo&&)=default;boost::optionalhello;};intmain(){fooa;foob(std::move(a));}我的编译器同时支持move语义和默认的move构造函数,但我无法让它工作。%clang++foo.cc-std=c++11-stdlib=libc++foo.cc:15:7:error:calltod

c++ - boost::asio 完全断开连接

有时boost::asio似乎在我想要它之前断开连接,即在服务器正确处理断开连接之前。我不确定这是怎么可能的,因为客户端似乎认为它完全发送了消息,但是当服务器发出错误时,它甚至没有读取消息头......在测试期间,这可能只发生五分之一,服务器收到客户端关闭消息,并干净地断开客户端。错误:“现有连接被远程主机强行关闭”客户端断开连接:voiddisconnect(){boost::system::error_codeerror;//justcreatesasimplebufferwithashutdownheaderboost::uint8_t*packet=createPacket(P

c++ - Boost.ASIO 性能不佳

我在Windows上使用boost::asio进行了一个非常简单的服务器/客户端性能测试,它的性能似乎很差。我希望我只是错误地使用了该库,并希望得到任何建议。我有一个session类,它先写入一个消息长度,然后再写入一个消息,然后等待读取一个消息长度,然后再读取一条消息,并且不停地一遍又一遍地这样做。但是,当我在自己的计算机上本地运行它时,我会获得极快的性能;当我在一台计算机上运行服务器并在另一台计算机上运行客户端时,即使在同一网络上,性能也会降低,读取/写入操作需要1秒。服务器源代码文件如下:#include#include#include#includeusingnamespace

c++ - boost::lexical_cast 对于 c++11 stoi、stof 和 family 是否是多余的?

既然C++11引入了stoi,stof,boost::lexical_cast是多余的吗?和家人,还是有任何理由仍然使用它?(除了没有C++11编译器)它们提供完全相同的功能吗? 最佳答案 boost::lexical_cast句柄morekindsofconversion,包括迭代器对、数组、C字符串等。提供相同的通用接口(interface)(sto*对不同的类型有不同的名称)是区域敏感的(sto*/to_string只是部分,例如lexical_cast可以处理数千个分隔符,而stoul通常不会)