草庐IT

ZN5boost

全部标签

c++ - 使用 Boost.Asio 获取本地 IP 地址

我目前正在寻找一种可移植的方式来获取本地IP地址。因为无论如何我都在使用Boost,所以我认为使用Boost.Asio来完成这项任务是个好主意。网上有几个例子可以解决问题。例子:OfficialBoost.AsioDocumentationSomeAsianPage我尝试了这两个代码,只是稍作修改。Boost.Doc上的代码已更改为不解析“www.boost.org”,而是解析“localhost”或我的主机名。为了获取主机名,我使用了boost::asio::ip::host_name()或直接将其输入为字符串。此外,我编写了自己的代码,该代码融合了上述示例以及我从Boost文档和其

c++ - Boost.Spirit 入门指南?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion我最近一直在查看Boost.Spirit(Boost1.39中包含的版本),但是我对文档本身感到很困惑。我正在寻找的是一个用Boost.Spirit实现的玩具语言的示例——类似于小型Javascript或Lua左右的东西,您基本上可以在其中创建一个AST和进程。如果它只支持函数/变量定义和基本运算符,我会很高兴,我只是想看看你如何使用Boost.Spiri

c++ - 使用 boost::filesystem::path 获取绝对路径

我当前的工作目录位于/home/myuser/program,我创建了一个boost::filesystem::path对象指向它。我附加了/../somedir,所以它变成了/home/myuser/program/../somedir。但我需要得到它的解析绝对路径,即/home/myuser/somedir。我尝试了很久,在theirreference中没有找到任何方法去做这个。有一个名为make_absolute的方法,它似乎应该做我所期望的,但我必须给它一个“根”路径参数。应该是哪个?我真的需要这样做才能获得真正的绝对路径吗?有没有其他办法? 最佳答

c++ - Boost::Asio : io_service.run() vs poll() 或者我如何在主循环中集成 boost::asio

我目前第一次尝试将boost::asio用于一些简单的tcp网络,我已经遇到了一些我不确定如何处理的问题。据我了解io_service.run()方法基本上是一个循环,它一直运行到没有更多事情要做为止,这意味着它会一直运行到我释放我的小服务器对象为止。由于我已经设置了某种主循环,为了简单起见,我宁愿从那里手动更新网络循环,我认为io_service.poll()会做我想做的事,有点像这样:voidmyApplication::update(){myIoService.poll();//dootherstuff}这似乎可行,但我仍然想知道这种方法是否存在缺点,因为这似乎不是处理boost

c++ - boost asio io_service 调度与发布

谁能告诉我io_servicedispatch之间的区别和post?我不清楚什么更适合我的问题。我需要在另一个处理程序中调用一个处理程序,但我不知道要使用什么invoker。 最佳答案 嗯,这取决于调用的上下文,即它是从io_service内部运行还是不运行:post永远不会直接调用该函数,而是推迟调用。dispatch如果dispatch-caller是从io_service本身调用的,将立即调用它,否则将其排队。所以,这取决于调用post/dispatch的函数,以及是否可以立即调用给定的处理程序。这是什么意思:...是disp

c++ - 使用 CMake 链接 Boost 库的静态版本

我在/usr/lib中有静态和动态版本的boost库。现在我希望CMake在我的可执行文件链接期间更喜欢静态版本。我能做什么? 最佳答案 在您的CMakeLists.txt文件中:set(Boost_USE_STATIC_LIBSON)find_package(BoostREQUIRED...)在我有...的地方,您可以选择输入您要使用的库的名称,然后在下面的target_link_libraries(targetname${Boost_LIBRARIES})中输入。如果你有一个相当新的CMake发行版,它应该完全按照宣传的那样工作

c++ - boost::property_tree XML pretty-print

我正在使用boost::property_tree在我的应用程序中读取和写入XML配置文件。但是当我编写文件时,输出看起来有点难看,文件中有很多空行。问题是它也应该由人类编辑,所以我想获得更好的输出。作为一个例子,我写了一个小测试程序:#include#includeintmain(void){usingboost::property_tree::ptree;ptreept;//readingfile.xmlread_xml("file.xml",pt);//writingtheunchangedptreeinfile2.xmlboost::property_tree::xml_wri

C++ - 为什么 boost::hash_combine 是组合散列值的最佳方式?

我在其他帖子中读到这似乎是组合散列值的最佳方式。有人可以分解一下并解释为什么这是最好的方法吗?templateinlinevoidhash_combine(std::size_t&seed,constT&v){std::hashhasher;seed^=hasher(v)+0x9e3779b9+(seed>2);}编辑:另一个问题只是询问魔数(MagicNumber),但我想了解整个功能,而不仅仅是这一部分。 最佳答案 “最好”是有争议的。“好”,甚至“非常好”,至少在表面上,很容易。seed^=hasher(v)+0x9e3779

c++ - Boost 1.46.1,属性树 : How to iterate through ptree receiving sub ptrees?

首先我要说我认为我知道应该怎么做,但是我的代码不会以我尝试的任何方式编译。我的假设基于thisofficialexampleofemptyptreetrick.在那里你可以找到下一行:constptree&settings=pt.get_child("settings",empty_ptree());这表明可以(或应该)从ptree中取出subptree。所以我假设我们可以用类似BOOST_FOREACH这样的方式遍历ptree:BOOST_FOREACH(constboost::property_tree::ptree&v,config.get_child("servecies"))

c++ - 附加到 boost::filesystem::path

我手头有一个特定的boost::filesystem::path,我想给它附加一个字符串(或路径)。boost::filesystem::pathp("c:\\dir");p.append(".foo");//shouldresultinppointingtoc:\dir.fooboost::filesystem::path的唯一重载是append需要两个InputIterator。到目前为止,我的解决方案是执行以下操作:boost::filesystem::pathp2(std::string(p.string()).append(".foo"));我错过了什么吗?