草庐IT

9-bit-serial

全部标签

c++ - 如何使 boost::serialization 反序列化更快?

我使用boost::serialization来保存包含此数据的对象:structContainer{structSmallObject{structCustomData{unsignedfirst;floatsecond;};std::vectorcustomData;//mySmallerObjects;//序列化代码看起来是这样的(这是侵入式的,为了可读性我没有写上面的函数声明):templatevoidContainer::SmallObject::CustomData::serialize(Archive&ar,unsigned/*version*/){ar&first;ar

序列化异常 : can't locate argument-less serializer

我正在创建一个Kotlin多平台库;实际上我有3个模块(common、jvm和js),在我得到的类路径中:classpath"org.jetbrains.kotlin:kotlin-serialization:${versions.kotlin}"在我的模块中我得到了:common:"org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:${versions.kotlinSerialization}"jdk:"org.jetbrains.kotlinx:kotlinx-serialization-runtime:${ver

序列化异常 : can't locate argument-less serializer

我正在创建一个Kotlin多平台库;实际上我有3个模块(common、jvm和js),在我得到的类路径中:classpath"org.jetbrains.kotlin:kotlin-serialization:${versions.kotlin}"在我的模块中我得到了:common:"org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:${versions.kotlinSerialization}"jdk:"org.jetbrains.kotlinx:kotlinx-serialization-runtime:${ver

c++ - 使用 Boost.Serialization 进行序列化

我一直在尝试序列化,但每次我都遇到如下错误:-error:'classstd::vector>'hasnomembernamed'serialize'这是我的源代码和序列化方法,知道我正在使用boost.serializetemplateclassheap{vector*hp;intindex;//indexispointingtofirstemptyplaceafterthelastelementintmaxsize;Tcomp;//comparableobjectdesignedtocomparetheobjectsprivate:friendclassboost::seriali

c++ - 为什么 boost::serialization 不检查 XML 文件中的标签名称?

我开始对XML存档使用boost::serialization。我可以生成和读取数据,但是当我手动修改XML并交换两个标签时,它“失败失败”(即它愉快地进行)。这是一个self完成的小例子,展示了我所看到的:#include#include#include#include#include#includeusingnamespacestd;intmain(void){boost::archive::xml_oarchiveoa(cout);staticconststringproducer="XXX",version="0.0.1";oa这会将XML写入标准输出,其中包含:XXX0.0.

c++ - 64bit和32bit进程互通boost::message_queue

大家好,我目前正在尝试找出一种在64位进程和32位进程之间传递数据的方法。由于它是一个实时应用程序并且两者都在同一台计算机上运行,​​因此我很难使用共享内存(shm)。当我在寻找一些使用shm的同步机制时,我对boost::message_queue有所感触。但是它不起作用。我的代码基本上如下:发件人部分message_queue::remove("message_queue");message_queuemq(create_only,"message_queue",100,sizeof(uint8_t));for(uint8_ti=0;i接收部分message_queuemq(ope

C++ Boost.serialization 与简单加载/保存

我是一名处理大量模拟数据的计算科学家,我经常发现自己将数据保存到磁盘或从磁盘加载数据。对于vector之类的简单任务,这通常就像将一堆数字转储到一个文件中一样简单,仅此而已。对于更复杂的东西,生命对象等,我有保存/加载成员函数。现在,我不是计算机科学家,因此我经常在SO上看到我不理解的术语(但我喜欢理解)。我最近遇到的其中一个是序列化和Boost.Serialization库的主题。据我了解,序列化就是将您的对象转换为可以从dist保存/加载或通过网络传输等内容的简单过程。考虑到最多我需要将我的对象保存到磁盘或从磁盘加载,是否有任何理由我应该从简单的加载/保存功能切换到Boost.Se

c++ - Eigen 和 boost::serialize

我尝试编写一个通用的序列化函数,它接受任何密集矩阵并将其序列化:其他一些有帮助但还没有结束的问题在这里:Question1Question2我尝试了以下应该有效的方法:namespaceboost{namespaceserialization{templatevoidserialize(Archive&ar,Eigen::EigenBase&g,constunsignedintversion){ar&boost::serialization::make_array(g.derived().data(),g.size());}};//namespaceserialization};//n

c++ - 错误 : invalid initialization of non-const reference of type ‘bool&’ from an rvalue of type ‘std::vector<bool>::reference {aka std::_Bit_reference}’

为什么我会收到错误:从类型为“std::vector::reference{akastd::_Bit_reference}”的右值对类型为“bool&”的非常量引用进行无效初始化?vector>vis;bool&visited(intx,inty){returnvis[x][y];//error}据我所知,vector中的operator[]返回引用,所以它应该是一个左值,但它不起作用。我应该怎么做才能让它发挥作用? 最佳答案 那是因为std::vector不是它看起来的样子。std::vector有一个特化与类型bool-它是空间

c++ - IP 标志的 Don't Fragment Bit 在哪里使用?

我很想知道IP标志的“Don'tFragment”[DF]位在哪里使用。由于碎片对更高层是不可见的,他们也不在乎。我也在找例子。非常感谢。 最佳答案 碎片并不总是对所有上层不可见。一些早期的(甚至可能是当前的)微ControllerTCP/IP堆栈没有实现碎片处理等完整功能。在这种情况下使用标志将确保数据包以其原始形式到达,而不是另一端无法处理的大量片段。此外,当使用UDP时,不需要所有的片段都到达目的地,因此,防止片段化意味着消息要么到达要么没有到达——不可能只有UDP数据报的一部分会到达目的地。我不记得TCP/IP堆栈为等待丢失