草庐IT

boost-function

全部标签

c++ - boost库中的以下定义是什么意思

我正在研究内部的boost库,对以下定义感到困惑:namespaceboost{namespacecontainer{template,typenameA=std::allocator>classbasic_string;templatebasic_stringbasic_string&&operator+(basic_stringbasic_string&&mx,constbasic_string&y);类型的含义是什么basic_stringbasic_string&&mx?这与longlongint相似吗?类型?这是boost引用链接:boost1.48.0

c++ - Boost Graph Library : How to use depth_first_visit, ColorMap 问题

初始问题:BoostGraphLibrary:PreventDFSfromvisitingunconnectednodes我正在尝试使用boost::depth_first_visit,但不知道如何提供ColorMap属性。我在这里尝试了示例中给出的方法:http://www.boost.org/doc/libs/1_58_0/libs/graph/example/loops_dfs.cpp我的(相关)代码:///Definevertexproperties.structNodeProperty{unsignedid;///Id.unsignedkind;///Kind.unsigne

python - boost::python 可以将对象的所有权传递给 python 回调函数吗?

我目前正在使用boost::python::call将C++指针传递给python回调函数功能。这工作正常,但如果我随后不删除C++代码中的指针,就会引入内存泄漏。我想将指针传递给回调并让python的垃圾收集器处理对象的生命周期。现在,如果我想保存传递给回调的对象,我必须进行深拷贝。我看过here使用return_value_policy包装的C++函数的返回值可能会发生这种情况.是否可以对boost::python::call的参数做类似的事情?? 最佳答案 方式manage_new_object工作原理是作为一个元函数类,将参

c++ - 使用boost线程的多线程中的段错误(核心转储)

当尝试使用最多1个线程运行我的程序时,它可以正常工作一段时间(几秒或几分钟)但最终出现段错误(核心转储)或双重释放(faststop)错误。这里是线程运行的函数。//usedintheFunction[Added]typedeffolly::ProducerConsumerQueuePcapTask;structs_EntryItem{Columns*p_packet;//hassomearbitrarymethodandvariablesboost::mutex_mtx;};//_buffersConnection.wait_and_pop()Datawait_and_pop(){b

c++ - 从 std::map 中删除 std::function lambda-wrapped 方法

我正在使用std::function和std::map创建一个回调系统。该映射使用int作为键,值为std::function。我将方法绑定(bind)到这些函数中。我想知道如果我调用map.erase(i),会从内存中删除std::function,还是会发生内存泄漏?下面是一些示例代码:#include#include#includeusingnamespacestd;classTestClass{public:TestClass(int_i,map>&test_map):i(_i){test_map[i]=[&](){this->lambda_test();};};voidlam

c++ - 使用来自 Boost.Spirit 的 Lex 和 Qi 在语法规则中使用词法分析器标记属性

让我们考虑以下代码:#include#include#include#include#include#include#include#includenamespacelex=boost::spirit::lex;namespaceqi=boost::spirit::qi;namespacephoenix=boost::phoenix;structoperation{enumtype{add,sub,mul,div};};templateclassexpression_lexer:publiclex::lexer{public:typedeflex::token_defoperator_

c++ - 如何在等待时取消 `boost::asio::read` 操作

我正在使用boost::asio在客户端和服务器之间来回传输数据。我在客户端有一个读取器线程来读取客户端套接字上接收到的数据。请注意,我在客户端使用boost::asio::read,在服务器端使用boost::asio::write。不使用async_read或async_write。一切都很好。但是,当我关闭我的应用程序时,10次中有2次该应用程序没有完全关闭或正确关闭。关闭时挂起问题如下:我的关闭函数在我的应用程序关闭期间调用析构函数时被调用。以下是关闭函数的代码:socket.cancel();socket.close();boost::system::error_codeec

c++ - 如何从 boost 属性树中读取字段类型

我正在使用boost属性树从json文件中读取值。{"some_values":{"field_1":"value_1","field_2":true}}我可以读取值:spTree->get("some_values.field_1","");spTree->get("some_values.field_2",false);但是我可以读取存储在任何给定字段中的变量类型吗? 最佳答案 Documentationsays[...]thefollowingJSON/propertytreemappingisused:[...]JSONva

c++ - 如何同时迭代两个 Boost 预处理器序列?

我想知道是否可以通过Boost预处理器序列完成以下操作。(大多数SO问题以及Boost预处理器示例仅讨论1个序列)#defineseq1(a)(b)(c)#defineseq2(1)(2)(3)//Nowiterateoverbothofthematthesametime这是我的动力。我必须为很多类型定义一些函数,例如voidadd(intval){obj.AddInt(val);}voidadd(doubleval){obj.AddDouble(val);}我正在考虑定义两个序列,例如#definetypes(int)(double)...#definefuncs(AddInt)(A

c++ - "Control reaches end on non-void function"with do { 返回结果; } 而(条件);

我有以下功能(简化示例):QByteArrayDecompressBytes(constQByteArray&content){/*functionbody(withotherreturnexpressions)*/do{returncontent;}while(content.size()!=0);}添加最后一行用于测试,替换使用的宏。VisualStudio没有发现此代码有问题,但g++生成了warning:controlreachesendofnon-voidfunction[-Wreturn-type]将最后一行更改为returncontent;删除警告。我的问题:为什么编译器