jjzjj

mutable_buffer

全部标签

c++ - Protocol Buffer 问题,多个序列化为二进制文件

我从protobuf二进制文件io中得到了一些奇怪的行为。我正在将文本语料库预处理为protobuf中间文件。我的序列化类如下所示:classpb_session_printer{public:pb_session_printer(std::string&filename):out(filename.c_str(),std::fstream::out|std::fstream::trunc|std::fstream|binary){}voidprint_batch(std::vector&pb_sv){boost::lock_guardlock(m);BOOST_FOREACH(ses

c++ - 如何在 Protocol Buffer 中设置嵌套消息的字段?

我有一个如下所示的原型(prototype)文件:messageterminal_data{requiredint32type=1;//1-->trade2-->ordermessagetrade_data{optionalstringclient_id=1;optionalstringstrat_id=2;optionalstringsymbol_name=3;optionalint64trade_id=4;optionalstringexpiry=5;optionalint64quantity=6;optionalstringtime=7;}messageorder_data{op

c++ - 无法在结构中包含 circular_buffer

我是cpp的新手。我想把“boost::circular_bufferhistpos(5);”用5个空格将5个元素存储在cpp结构中作为成员。我试试这个:typedefstructhistposRecorder{int32_ttrack_id;boost::circular_bufferhistpos(5);}coRecord;我得到这个错误:error:expectedidentifierbeforenumericconstantboost::circular_bufferhistpos(5);error:expected‘,’or‘...’beforenumericconstant

c++ - Protocol Buffer 如何支持标准容器的序列化/反序列化?

我们计划用分布式系统设计中使用的ProtocolBuffer替换Boost.serialization。ProtocolBuffer如何支持复杂的数据结构,例如标准容器?例如,在我们的例子中需要对这样的类进行序列化/反序列化:classFoo{std::vector>>>data;}; 最佳答案 ProtocolBuffer使用了一个解析器,它接受一个.proto文件并创建适当的序列化例程。参见this.更新:您可以将字符串vector表示为:messageMyCollection{repeatedstringstr=1;}在你的原

c++ - 在 C++ 中比较 buffer 和 const char*

将内存缓冲区与常量字符串进行比较的正确C++方法是什么-strcmp(buf,"sometext")?我想避免由于创建临时std::string对象而导致不必要的内存复制。谢谢。 最佳答案 如果您只是检查相等性,您可以使用std::equal#includeconstchar*text="sometext";constintlen=8;//lengthoftextif(std::equal(text,text+len,buf))...当然,如果您的缓冲区可以小于文本,这将需要额外的逻辑

c++ - 哪些库必须与 Protocol Buffer 生成的 C++ 代码链接

我有来自mytest.proto文件的mytest.cc和mytest.h输出,但我找不到关于如何为此使用g++编译对象的任何引用。(.proto很好,因为我可以使用Python)g++mytest.cc-l????????要包含哪些库? 最佳答案 我想你可能需要链接到libprotobufg++mytest.cc-lprotobuf-omytest 关于c++-哪些库必须与ProtocolBuffer生成的C++代码链接,我们在StackOverflow上找到一个类似的问题:

c++ - 使用 C 和 C++ 的 Protocol Buffer

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。现在我有一个带有ProtocolBuffer的c/s程序(使用c++)。我想用c重写服务器。但是在.proto文件中有很多服务。该程序实现了rpc本身,而protocolbuffers-c提供了另一个。我希望有人向我展示如何实现此示例。service{rpcfoo(what)returns(what);}客户端用c++,服务器用c,怎么写这个服务。

c++ - 是什么导致来自 WinHttpSendRequest 的间歇性 SEC_E_BUFFER_TOO_SMALL 错误?

我有一个工具可以针对具有相同header、相同帖子正文等的相同URL执行HTTPSPOST命令多次迭代。我遇到的情况是,对于某些测试人员,WinHttpSendRequest()函数经常失败,随后对GetLastError()的调用返回SEC_E_BUFFER_TOO_SMALL(0x80090321),记录在此处:COMErrorCodes(SecurityandSetup).这不是WinHttpSendRequest()的记录错误代码,相当广泛的谷歌搜索也没有为此找到任何东西。我已经四重检查了我提供的WinHttpSendRequest()输入是否正确有效,并且这些输入连续工作了数

c++ - 一个 const std::function 包装一个非常量 operator()/mutable lambda

考虑以下示例:#include#includestructA{inti;voidoperator()(){std::coutconst&fun){fun();}intmain(){conststd::functionf{A{}};test(f);test(f);}在这里,conststd::function能够调用非constoperator().输出:12如果我提供一个mutablelambda,也会发生同样的情况,例如test([x=0]()mutable{++x;});这怎么可能?conststd::function可以包装可变仿函数是否正常? 最佳答

c++ - Lambda 按值捕获和 "mutable"关键字

lambda中对关键字mutable的需求是造成极大困惑的根源。考虑代码:intx=10;functionlambda=[=]()mutable{x++;cout输出:Beforelambda:x=10Insidelambda:x=11Afterlambda:x=10正如我们所见,变量x在lambda之后保持不变,因此没有副作用。但是,如果我们“忘记”了关键字mutable,就会出现错误。作为C++中默认的按值传递参数,对我来说需要mutable关键字没有意义。有人可以编写(即使是伪代码)编译器生成的类来代替lambda吗?谢谢 最佳答案