草庐IT

send_buffer

全部标签

c++ - Protocol Buffers 是否支持移动构造函数

我检查了moveconstructor规范和Messageconstructor来源,但没有找到。如果没有,有人知道添加它的计划吗?我正在使用proto3语法,编写一个库并考虑通过值返回与unique_ptr之间的关系。 最佳答案 根据https://github.com/google/protobuf/issues/2791这将在Protobuf版本3.4.0中得到支持。 关于c++-ProtocolBuffers是否支持移动构造函数,我们在StackOverflow上找到一个类似的问

c++ - 当我们使用 mpi_send/receive 函数时到底发生了什么?

当我们使用mpi_send/receive函数时会发生什么?我的意思是这种通信是通过我们希望发送和接收的变量的值或地址完成的(例如进程0想要发送变量“a”到进程1。进程0究竟发送变量“a”的值或地址的“一个”)。当我们使用派生数据类型进行通信时会发生什么? 最佳答案 幕后发生了相当多的魔法。首先是意外消息队列。当发送方在接收方调用MPI_Recv之前调用MPI_Send时,MPI不知道消息将发送到接收方内存中的哪个位置。此时可能会发生两件事。如果消息很短,它会被复制到接收方的临时缓冲区中。当接收方调用MPI_Recv时,它首先检查匹

c++ - Google Protocol Buffers - 缺少必填字段,即使所有字段显然都存在

我正在尝试通过TCP发送ProtocolBuffer消息,但在接收方尝试解析时出现“缺少必填字段”错误,即使显然所有字段都在那里。我在包含消息长度的消息之前发送一个4字节的header。消息定义如下:messageReplayRequest{requiredstringchannel=1;requireduint32start=2;requireduint32end=3;}在客户端,我对header进行编码并将消息序列化为vector。ReplayRequestreq;req.set_channel("channel")req.set_start(1);req.set_end(5);i

c++ - 强制 boost::asio::buffer 按值复制

我使用boost::asio::buffer来发送消息voidSend(conststd::string&messageData){socket.async_write(boost::asio::buffer(messageData),...);}并且在io_service线程的某处遇到“字符串迭代器不可取消引用”运行时错误。当我创建对象的变量来存储缓冲区的消息数据时:voidSend(conststd::string&messageData){this->tempStorage=messageData;socket.async_write(boost::asio::buffer(th

c++ - 解析 Google Protocol Buffer 的文本文件

根据示例代码https://developers.google.com/protocol-buffers/docs/cpptutorial,它们展示了如何在二进制格式的原型(prototype)文件中进行解析。使用tutorial::AddressBookaddress_book;{//Readtheexistingaddressbook.fstreaminput(argv[1],ios::in|ios::binary);if(!address_book.ParseFromIstream(&input)){cerr我尝试为文本格式的输入文件删除ios::binary,但仍然无法读取文件

c++ - 将 `Vertex Buffer Object` 绑定(bind)到 `Vertex Array Objects` 后,我应该删除它吗?

我创建了一个VBO(顶点缓冲区对象)和VAO(顶点数组对象)并执行了以下操作:glBindVertexArray(vao);glBindBuffer(GL_ARRAY_BUFFER,vbo);glBufferData(...);glVertexAttribPointer(...);glEnableVertexAttribArray(0);glBindVertexArray(0);我可以在完成此操作后删除vbo,然后假设一切正常,然后使用vao绘制吗?我知道缓冲区绑定(bind)到vao所以我假设我可以。问题是,如果我在我的计算机(Intel图形)上删除缓冲区,它会工作得很好(一切都正确

c++ - GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 检查期间编译时出现 Protocol Buffer 错误

我目前收到一个错误,它指向protoc生成的头文件中的这些行:#if2006001但我的协议(protocol)版本与上面的版本匹配:protoc--versionlibprotoc2.6.1我做错了什么?最初我的protoc版本是3.0.0然后通过同步回2.6.1并执行这些步骤重新安装它;makedistclean,./configure,make,makeinstall安装所需的2.6.1版本。我需要旧版本,因为那是我们服务器中安装的版本。 最佳答案 问题是您系统上安装的header(在/usr/include/google/p

c++ - 了解 MSVC++ 中的 "Buffer Security Check/GS"编译器选项

我最近惊讶地注意到,在MSVC++2010中使用/GS(启用缓冲区安全检查)进行编译似乎在某些情况下对运行时性能具有不可忽略的影响。有没有人有过这样的经历??对于大型科学风格的应用程序(网格生成库),似乎使用/GS-进行编译可以使我的几个大型基准测试的运行时间提高近10%测试套件(“大”是>=1秒的运行时间)。/GS在MSVC++2010中的所有优化级别默认处于启用状态。我必须承认,我以前从未过多关注过这个选项,我想澄清一下它的实际作用。在线documentation似乎广泛谈论字符串缓冲区,但由于我不在任何地方使用string或char[]缓冲区,我一定遗漏了一些东西。这段(来自在线

c++ - 谷歌 Protocol Buffer 消息到字节数组 C++

我目前使用两种消息协议(protocol),一种是googleproto,另一种是c-structs。将谷歌ProtocolBuffer消息(MessageLite)转换为字节数组的最佳解决方案是什么?例如,我想转换以下googleproto消息:messageGoogleRequest{optionalint32request=1[default=0];}到:structRequest{intrequest;};我已经尝试了以下但它不起作用:GoogleRequestreqMsg;reqMsg.set_request(1234);intsize=reqMsg.ByteSize();R

Windows 7 右键单击​​ "Send to"文件上下文菜单

当我右键单击一个文件(在任何文件夹中)时,我看到一个选项“发送到”和里面桌面文件...和许多其他地点。如何将我自己的位置(即“C:\stuff”)添加到此上下文菜单? 最佳答案 打开文件资源管理器并导航到:%APPDATA%\Microsoft\Windows\SendTo进入SendTo文件夹后,右键单击->新建->快捷方式 关于Windows7右键单击​​"Sendto"文件上下文菜单,我们在StackOverflow上找到一个类似的问题: https:/