草庐IT

C++标准

全部标签

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

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

c++ - (c/c++) 试图强制 EOF 从父进程发送输入到子进程

我有一个非常简单的c/c++程序,它派生一个子进程来执行另一个程序,然后向该子程序发送一些数据,并等待响应。子程序从stdin读取并在继续之前等待EOF。我的问题是,子程序从管道写入接收到初始输入,但它从未看到EOF(即使我关闭了管道),所以它永远等待。我不确定为什么关闭管道并不意味着child的标准输入的EOF?代码如下:http://gist.github.com/621210 最佳答案 最常见的原因是您没有关闭管道的写入端,因此永远不会发送EOF。常见的例子是当你有如下代码时:intfds[2];pipe(fds);//ope

c++ - c++标准库的设计原则是什么?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。所以standardc++library主要包含大概7类,使其成为标准的基本原理/原型(prototype)是什么?顺便说一句,套接字编程相关的东西在c++标准库中属于哪一类?

c++ - 我在哪里可以找到涵盖 K&R1/2、C89-C1X 及其来源的 C(和/或 C++)关键字列表?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我接触过许多编码指南,每一个指南都给出了命名“事物”的指南。一个特定的C89命名规则引发了这个问题:明确禁止对变量使用名称“new”,因为在C++中这是一个关键字。这让我开始考虑下一个标准,C99有很好的文档记录,但C11相对较新(20

c++ - 将 fpos_t 转换为 int 或 char

我正在使用一个对文件长度使用位运算的函数:fpos_tflen;当我尝试将其转换为int或char,或尝试对其进行算术运算时,它失败并出现以下编译错误:错误:在需要整数的地方使用了聚合值 最佳答案 您在滥用该类型。首先,它不代表长度。它代表一个位置。其次,它仅用于调用fsetpos。您不打算对其进行算术运算,因为它不一定代表数字类型。它包含您的库执行fsetpos操作所需的任何信息。在您的库的实现中,fpos_t似乎是一种聚合类型,例如结构。(您可以检查头文件中的定义以确保确定,但不要依赖您在那里发现的任何内容;它可能会在其他平台或

c++ - _IO_wide_data_2 : what's this?

我在嵌入式平台上工作(架构是SH4),几分钟前我的程序因SIGABRT而崩溃。幸运的是,我在gdbserver下运行,被这个信号中断的线程有这个堆栈转储:#00x2a7f1678inraise()from/home/[user]/target/lib/libc.so.6#10x2a7f2a4cinabort()from/home/[user]/target/lib/libc.so.6#20x2a81ade0in__libc_message()from/home/[user]/target/lib/libc.so.6#30x2a81f3a8inmalloc_printerr()from/

c++ - C 和 C++ 中的套接字解​​释

好吧,我一直想知道是否有用于C++的标准套接字头文件我搜索了整个互联网(使用谷歌搜索引擎),但找不到任何标准的C++套接字头文件,除了找到一些库,如Boost、chilkat等...我只成功地找到了C编程语言的标准套接字头文件。如果我使用C标准套接字头文件,但在我的C++代码中,这是否意味着我的程序是纯C++还是C和C++?因为我没有找到任何标准的C++套接字头文件。像有对于C++,有对于C,但没有套接字C++的标准头文件。我希望C/C++高手能一步一步地为我解释所有这些。 最佳答案 C++中没有标准的套接字库。您可以使用您的操作系

c++ - 使用 GCC 的函数检测,为什么使用 C++ STL 容器或流 I/O 会导致段错误?

我最近了解到使用GCC的代码生成功能(特别是-finstrument-functions编译器标志)可以轻松地向我的程序添加检测。我认为它听起来很酷,并在以前的C++项目中尝试过。在对我的补丁进行了几次修改之后,我发现每当我尝试使用STL容器或使用C++流I/O打印到标准输出时,我的程序都会立即因段错误而崩溃。我的第一个想法是维护一个std::list的Event结构typedefstruct{unsignedcharevent_code;intptr_tfunc_addr;intptr_tcaller_addr;pthread_tthread_id;timespects;}Event

c++ - 在 C++11 标准中哪里说 char* p = "abc";是病态的?

在C++11标准中哪里说char*p="abc";格式错误? 最佳答案 这在C++03中仍然有效(尽管已弃用),但在C++11中情况发生了变化。C++11标准的附件C提到(参见C1.1):Change:StringliteralsmadeconstThetypeofastringliteralischangedfrom“arrayofchar”to“arrayofconstchar.”Thetypeofachar16_tstringliteralischangedfrom“arrayofsome-integer-type”to“ar

c++ - 当我的编译器不符合标准时如何将数组成员归零

我的编译器(C++Builder6)在语法上允许数组成员初始化(至少为零),但实际上它并没有真正做到这一点。因此,根据上下文,下面给出的示例中的断言会失败。#includestructTT{charb[8];TT():b(){}};voidtestIt(){TTt;assert(t.b[7]==0);}目前不能更改编译器。我的问题是:就future的可移植性和标准一致性而言,“修复”此缺陷的最佳方法是什么?编辑:事实证明,我的第一个示例太短了。它错过了重点,数组的填充级别非常重要,它必须存储在非常靠近数组的地方,即:在同一个类中。即使原始问题仍然存在,我的实际问题模式通常是这样的:st