草庐IT

hit-boosted

全部标签

c++ - boost::format 和自定义打印标准容器

我的命名空间中有一个函数ns这有助于我打印STL容器。例如:templatestd::ostream&operator&set){stream这非常适合使用operator进行打印直接:std::setx={"1","2","3","4"};std::cout但是,使用boost::format是不可能的:std::setx={"1","2","3","4"};boost::format("%1%")%x;问题相当明显:Boost不知道我希望它使用我的自定义operator打印与我的命名空间无关的类型。在添加using之外申报成boost/format/feed_args.hpp,有没

c++ - 将 Boost.Proto 语法与类型匹配

我试图在Boost.Proto中创建一个匹配vector类型的语法,但是当我给它一个该类型的终端时,它与语法不匹配。类型定义如下所示:templatestructvector{typedefTscalar;enum{size=D};scalar&operator[](unsignedi){returnm_components[i];}scalarconst&operator[](unsignedi)const{returnm_components[i];}private:scalarm_components[size];};我试图匹配的语法看起来像这样:namespaceproto=b

c++ - Boost::Split 使用整个字符串作为分隔符

我想知道是否有一种方法使用boost::split以整个字符串作为分隔符来拆分字符串。例如:str="xxaxxxxabcxxxxbxxxcxxx"有没有一种方法可以使用"abc"作为分隔符来分割这个字符串?因此返回:结果将是字符串"xxaxxxx"和"xxxxbxxxcxxx"。我知道boost::split使用"is_any_of"谓词,但是调用is_any_of("abc")会导致也将字符串拆分为单个字符“a”、“b”和“c”,这不是我想要的。 最佳答案 是的,有一种方法(这是我知道的一种方法,也许有更好的方法)使用boost

c++ - boost::erase_all 从字符串中删除多个字符

如果我想使用boost::erase_all从字符串中删除所有1,我可以这样做:boost::erase_all("a1b1c1","1");现在,我的字符串是“abc”。但是,如果我想使用boost::erase_all从字符串中删除所有数字(0-9),我必须为我希望删除的每个数字调用一次。boost::erase_all("a1b2c3","1");boost::erase_all("a1b2c3","2");boost::erase_all("a1b2c3","3");我想我可以使用boost::is_any_of一次删除它们,因为它可以与其他boost字符串算法一起使用,例如b

c++ - 在 boost::asio 中选择功能

我打算在我的项目中使用boost::asio库。但是哪个函数对应于本地套接字C库中的select()并不是很明显。这在asio中可用吗?或者boost是否提供了一种替代方法来确定套接字是否准备就绪? 最佳答案 Boost.Asio的高级设计基于Proactordesingpattern.因此,您不需要轮询select。相反,为异步操作提交完成处理程序,并在操作完成时调用完成处理程序。 关于c++-在boost::asio中选择功能,我们在StackOverflow上找到一个类似的问题:

c++ - 段太多,汇编错误,使用 boost::spirit

我正在为Java的一个子集编写编译器,使用boost::spirit进行词法分析和解析。在词法分析器/解析器阶段的编译期间,编译器消耗1.6GBRAM(g++(GCC)4.8.1),但这不是问题,因为有很多这台机器上的内存。然而,问题在于当编译器完成并且汇编器开始运行时(GNUassembler(GNUBinutils)2.23.52.20130604),它崩溃了;as:build/src/ast_generate.o:toomanysections(33098)/tmp/cc0ZyvKK.s:Assemblermessages:/tmp/cc0ZyvKK.s:Fatalerror:c

c++ - boost::spirit 从语义 Action 访问位置迭代器

假设我有这样的代码(供引用的行号):1:2:functionFuncName_1{3:varVar_1=3;4:varVar_2=4;5:...我想编写一个语法来解析此类文本,将所有标识符(函数和变量名)信息放入树中(utree?)。每个节点应保留:line_num、column_num和符号值。示例:root:FuncName_1(line:2,col:10)children[0]:Var_1(line:3,col:8)children[1]:Var_1(line:4,col:9)我想把它放到树中,因为我计划遍历那棵树,对于每个节点,我必须知道“上下文”:(当前节点的所有父节点)。例

c++ - 将 future 与 boost::asio 结合使用

有没有人知道使用futuresfromtheBoostthreadlibrary的例子?与BoostASIO?我有一个现有的异步库,它使用回调函数,我想为其提供一个更友好的同步接口(interface)。 最佳答案 如果不了解与现有异步库的交互,很难提供简洁的解决方案。尽管如此,这answer使用Boost.Future和Boost.Asio来实现主动对象模式。当creatingafuture,考虑检查现有的异步库以确定哪种方法更合适:boost::packaged_task提供了一个可以创建future的仿函数。这个仿函数可以在B

c++ - 使用纯 C++/Boost 读取/写入具有 unicode 文件名的文件

我想使用boost文件系统读取/写入具有unicode文件名的文件,Windows上的boost语言环境(mingw)(最后应该是平台独立的)。这是我的代码:#include#defineBOOST_NO_CXX11_SCOPED_ENUMS#include#includenamespacefs=boost::filesystem;#include#includeintmain(){std::locale::global(boost::locale::generator().generate(""));fs::path::imbue(std::locale());fs::pathfil

c++ - 你如何正确关闭 boost::asio 中的套接字?

我正在努力研究boost::asio中的资源管理。我看到在相应的套接字已经被销毁后调用的回调。boost::asio官方示例就是一个很好的例子:http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp我特别关心关闭方法:voidclose(){io_service_.post([this](){socket_.close();});}如果您调用此函数并随后销毁持有socket_的chat_client实例,则socket_将在对其调用close方法之前被销毁。也