草庐IT

标准图

全部标签

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

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

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

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

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

c++ - C++ 标准对超出目标类型范围的类型的强制转换结果有何规定?

最近我不得不执行一些从float到16位整数的数据类型转换。基本上我的代码减少到以下floatf_val=99999.0;shortintsi_val=static_cast(f_val);//si_valisnow-32768这个输入值是个问题,在我的代码中我忽略了检查浮点值的限制,所以我可以看到我的错误,但这让我想知道当必须这样做时语言的确切规则笨拙的Actor。我有点惊讶地发现类型转换的值(value)是-32768。此外,这是我在float的值超过16位整数的限制时得到的值。我用谷歌搜索了这个,但令人惊讶地发现缺乏关于它的详细信息。我能找到的最好的是来自cplusplus.co

c++ - C++1y标准是否考虑过支持coroutine/goroutine?

我认为协程/goroutine在必须快速执行大量并发小任务的情况下非常有用。当前的std::thread成本太高,无法满足要求。我也认为协程/goroutine不能简单地通过C++库来支持,它应该直接由语言的核心特性来实现。因为coroutine/goroutine有特殊的语义,在当前的C++标准中没有相应的概念。假设我们新增一个关键字cppgo,那么我们可能会写出如下代码:voidf(intn){...}intmain(){for(inti=0;i那该有多酷!C++1y标准是否考虑支持coroutine/goroutine? 最佳答案

java - 重定向标准输出和标准输入 - Java

在编写c/c++代码时,使用freopen()非常方便.请看下面的代码片段-intmain(){intn1,n2,result;freopen("input.txt","rb",stdin);freopen("output.txt","wb",sdtout);while(scanf("%d%d",&n1,&n2)==2&&n1>0&&n2>0){.........printf("%d\n",result);}return0;}当我们尝试调试/测试小型控制台应用程序时,以这种方式使用freopen()非常有用。我们可以将示例输入放入'input.txt'文件一次,然后每次都重复使用它们,

c++ - 缩写类型名称 long long 与 long long int,是否符合标准?

我看到的大多数代码都使用缩写类型来声明变量,例如longlongx;//longlongintxshorty;//shortinty我浏览了C++11标准(第3.9.1节),类型总是完整声明的,如longlongint。我找不到任何关于缩写类型的提及。我很确定这些缩写符合标准,但想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。 最佳答案 是的,这是有效的,它包含在draftC++11standard中7.1.6.2简单类型说明符部分说:Table10summarizesthevalidcombinationsofsim

c++ - 正确使用工厂类的标准 move

我想创建一个如下所示的工厂类,但我不确定这是使用std::move的正确方法。我不想使用太多的shared_ptr,因为在另一个shared_ptr中的shared_ptr真的很难看,有时还会让人困惑......选项1:classFoo{public:Foo(Foo&&f){...}}classFooFactory{public:staticFoo&&createFoo(...){Footemp(...);returnstd::move(temp);}}main(){Foof=FooFactory::createFoo(...);}选项2:classFooFactory{public:

SECS/GEM300标准和重要性

近年来,随着半导体产业的蓬勃发展,GEM300标准在中国的半导体行业中的重要性逐渐凸显。GEM300作为SEMI标准中的一项,是应用于300毫米晶圆半导体制造工艺所需的标准规范。这一标准对于投入到300mm晶圆半导体制造工序中的设备来说,是必要的标准化规范。在中国的半导体制造工序中,300mm晶圆制程的比例持续上升,从而对遵循GEM300标准的设备需求也在逐步增加。在中国半导体设备制造行业,引入GEM300标准存在一些挑战。尤其是在支持300mm制程的情况下,与现有SECS/GEM标准相比,场景支持的复杂性较高。尽管如此,中国半导体行业也在积极努力支持GEM300标准。然而,由于标准化行业的本