草庐IT

ZN5boost

全部标签

c++ - 如何使用 boost::unit_test?

我正在尝试学习如何测试程序,所以我尝试了Boost。我已经开始阅读它并且here我遇到过这一行:现在我可以编译它并链接到单元测试框架。我应该从哪里以及如何获得单元测试框架?它是什么?我只是不知道和什么一起吃。有人可以提供一些如何使用它的步骤,或者可能会指出一些其他教程,其中甚至会解释最简单的东西,如单元测试框架以及如何将其链接。谢谢 最佳答案 只是一个快速的评论。这个库的问题在于它至少有三种不同的方式来实现和运行测试。根据您在包含boost单元测试header之前添加到代码中的#defines,它可以自动为您生成一个主要功能(然后构

c++ - 将 boost::unordered_set 作为结果映射传递给 boost::split

有谁知道将boost::unordered_set作为第一个参数传递给boost::split是否合理?在libboost1.42-dev下,这似乎会导致问题。这是导致问题的一个小示例程序,将其称为test-split.cc:#include#include#include#includeintmain(intargc,char**argv){boost::unordered_settags_set;boost::split(tags_set,"a^b^c^",boost::is_any_of(std::string(1,'^')));return0;}然后,如果我运行以下命令:g++

c++ - Boost ASIO 缓冲不工作

我正在编写一个网络应用程序,它使用ASIO/UDP在单个远程/本地端点对之间发送和接收。我曾使用udp::socket::receive接收数据,我的代码中的所有内容都在逻辑上工作,但我丢失了大量数据包。我发现任何接收到的数据包在没有被接收函数阻塞的情况下都丢失了——它没有缓冲。这特别奇怪,因为我使用以下命令将接收缓冲区设置为2MB:sock_udp.connect(remote_endpoint);sock_udp.set_option(boost::asio::socket_base::receive_buffer_size(2*1024*1024));如果我只发送两个数据包,每个

c++ - 使用 Boost::Asio 停止线程服务器循环

我正在为一个更大的软件开发一个微型服务器循环,但它并没有像我希望的那样工作。当用户输入“.quit”时,我希望软件停止这个线程服务器循环:try{while(true){acceptor.accept(socket);constsize_tbuffersize=1024;chardata[buffersize+1]={0};data[socket.read_some(boost::asio::buffer(data,buffersize))]='\0';//Writedata&placeterminatorboost::threadasyncWriting(boost::bind(&m

c++ - 使用 boost.python 从 UTF-8 编码的 char* 返回 python unicode 实例

我正在尝试做一些应该非常简单的事情,但我不太幸运地从现有文档中弄清楚如何做。对于python2项目,我试图将列表gettext-translated字符串作为unicode实例返回给python。gettext()的返回值是UTF-8编码的char*,使用PyUnicode_FromString将其转换为pythonunicode实例应该非常简单。我觉得这很容易做到,但我似乎不知道怎么做。根据IgnacioVazquez-Abrams和ThomasK的评论,我确实让这个对单个字符串有效;对于这种情况,您可以绕过所有boost.python基础设施。这是一个例子:PyObject*PyM

c++ - 在 boost::spirit 中使用指向解析器的指针

基本上我在做一个表达式解析器。由于我需要尽可能好的性能,并且根据语法的文档构造可能相当慢,我想重用语法并在解析之前绑定(bind)符号表。由于语法的客户端可能有一个在解析之前构建和维护的符号表,我希望避免复制实际的表,这会导致我使用以下代码(简化)来翻译术语:qi::symbols*m_Symbols;qi::rulem_Val;m_Val=qi::int_[_val=boost::phoenix::static_cast_(boost::spirit::_1)]|qi::double_|m_Symbols;这里的问题是m_Symbols。我想要的是让m_Val通过引用保存m_Symb

c++ - 如何使用(Boost Multidimensional Array Library)构造动态二维数组?

我在使用boost多维数组方面需要帮助。我必须构建一个二维数组,其中:(0longboostArray[i][j];因此,这就像构建一个包含(未知)列和两行的表格。我已经开始使用Boost库网站上提供的示例:#include"boost/multi_array.hpp"#includeintmain(){//3x4x2typedefboost::multi_arrayarray_type;typedefarray_type::indexindex;array_typeA(boost::extents[3][4][2]);intvalues=0;for(indexi=0;i!=3;++i

c++ - Boost 序列化/反序列化存档 "stream error"异常

我有以下问题..我有一个名为A.h的文件和一个名为B.h的文件。每个都包含这样的结构:(两个类中的结构不同)structBase{friendclassaccess;templatevoidserialize(Archive&ar,constunsignedintversion){ar&fieldLength;ar&fieldMD;ar&fieldTime_Stamp;}public:unsignedintfieldLength;unsignedintfieldMD;unsignedintfieldTime_Stamp;virtualvoidf(){}//tobepolymorphic

c++ - 使用 boost phoenix,如何调用带有 starts_with 的 find_if 调用?

我正在尝试在结构vector中查找元素。该代码在以区分大小写的方式进行搜索时有效。当我尝试将其boost为不区分大小写时,我遇到了两个问题。简单地包含boost/algorithm/string.hpp会破坏以前工作的VS2010构建。错误是“'boost::phoenix::bind':对重载函数的模糊调用”。在Xcode中构建正常。有什么方法可以消除绑定(bind)的歧义?我想我在第二个(注释掉的)find_if行中有语法错误,添加了istarts_with调用。我从phoenixheader中收到错误消息“错误:没有名为‘type’的类型”。假设问题#1可以解决,我应该如何更正此

c++ - boost filesystem::path 构造函数 std::length_error

我正在尝试使用Boost.Filesystem库遍历目录。问题是当我尝试实例化一个路径对象时,我得到一个std::length_error消息“stringtoolong”和任何长度的字符串,例如“pippo”。我已经尝试了所有这些:strings="pippo";pathp(s);pathp(s.begin(),s.end());pathp(s.c_str());pathp("pippo");我在Windows7上使用boost预编译版本1.47forvc++10。先谢谢你,卢卡编辑这是执行的boost代码(path.hpp第129行)templatepath(Sourceconst