草庐IT

CACHE_LINE_SIZE

全部标签

c++ - size_t 和内存分配

有这样一个类型std::size_t。它可用于描述对象的大小,因为它保证能够表达任何对象的最大大小(所以写成here)。但是,这是什么意思?我们实际上在内存中没有对象。那么这是否意味着这种类型可以存储一个整数,代表我们理论上可以使用的最大内存量?如果我尝试写类似的东西size_tmaxSize=std::numeric_limits::max();newchar[maxSize];我会得到一个错误,因为数组的总大小被限制为0x7fffffff。为什么?此外,如果我传递一个等于maxSize的非常量表达式,将抛出std::bad_array_new_length。如果我传递一个小于max

c++ - sizeof(size_t) 和 sizeof(ptrdiff_t) 什么时候可以不同?

什么时候可以sizeof(size_t)和sizeof(ptrdiff_t)有区别吗?有这方面的真实示例吗?注意,我知道所有标准都说这些类型是实现定义的。但是我知道的所有实现,sizeof(size_t)和sizeof(ptrdiff_t)等于。也许出于某些奇怪(或不太奇怪)的原因,它们可能会有所不同。看来,sizeof(ptrdiff_t)这不是一个非常有用的情况,因为指针运算对于大型数组来说非常有限。另一种情况,sizeof(ptrdiff_t)>sizeof(size_t)可能有点用处,因为所有指针减法都将在数组上定义(如果数组大于PTRDIFF_MAX,则指针减法将为所有远距离

c++ - Protocol Buffer : no notation for fixed size buffers?

因为我在this上没有得到答案问题我必须制作原型(prototype)并检查自己,因为我的数据集header需要固定大小,所以我需要固定大小的字符串。那么,是否可以在ProtocolBuffer中指定固定大小的字符串或字节数组?这在这里不是很明显,而且我对强制将固定大小的字符串放入header消息中感到有点难过。--即std::string('\0',128);如果不是,我宁愿使用#pragmapack(1)structheader{...};'编辑问题间接回答here.会回答,除了 最佳答案 protobuf在协议(protoco

c++ - boost::variant for boost::arrays of arbitrary size

我想本着的spirit创建一个boost::varianttypedefboost::variant,boost::array,boost::array,...>any_int_array;泛化为N作为模板的第二个值。换句话说,一个包含任意大小数组的boost::variant。这可能吗?请注意,在上面的示例中,boost::array是我的案例之一,但对于采用单个int的任何类,它都需要是一个可行的解决方案值作为模板参数。 最佳答案 既然你在谈论具有静态已知容量的类型,你就不能用一些模板元编程来解决这个问题吗?LiveonColi

c++ - OpenGL:并非所有卡都支持 GL_LINE SMOOTH;甚至不会画线,除非

首先,这段代码的目的是什么?glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);我可以放在那里GL_DONT_CARE但它不会让我画线,除非我使用glDisable(GL_LINE_SMOOTH)所以我问是否有一些内置机制可以使它绘制线条,即使不支持平滑线条(所以它会在没有抗锯齿的情况下绘制它们......)或者我必须为它创建自己的函数并检查是否支持平滑线等...每次我想绘制平滑线时,我都需要调用这个函数来检查它是否被支持?啊。编辑:线条在我的另一张卡上是平滑的,在我的另一张卡上它们甚至没有出现,除非我禁用平滑线。所以这就是问题所在,而不是glEnable(GL

如何检查角色是否是Rust中的Unicode New-Line字符(不仅是ASCII)?

每种编程语言都有自己的解释\n和\r。Unicode支持多个字符能够代表一条新线。从生锈的参考:空格逃脱是u+006e(n),u+0072(r)或u+0074(t)的字符之一,表示Unicode值U+000A(LF),U+000D(CR)或U+0009(HT)。基于该陈述,我会说如果它是一个新线角色,则是一个新的字符\n或者\r。在窗户上可能是\r和\n。我不确定。那以下呢?下一行字符(u+0085)线分离器字符(U+2028)段落分隔符(U+2029)我认为,我们缺少像char.is_new_line()。我看了看Unicode字符类别但找不到新线的定义。我是否必须提出自己对Unicode新

c++ - 如何获取另一个函数的 __LINE__ 值(在调用该函数之前)?

对于当前存在的测试框架,我需要将(在第一次调用期间)传递给该函数内部片段的行号。是这样的:#includevoidfunc(intline_num){#defineLINE_NUM(__LINE__+1)if(line_num==__LINE__)//Checkthepassedargagainstthecurrentline.printf("OK");elseprintf("FAIL");}intmain(void){func(LINE_NUM);//Passtothefuncthelinenumberinsideofthatfunc.return0;}(这是更复杂功能的简约版本)。

c++ - 多重继承 : size of class for virtual pointers?

给定代码:classA{};classB:publicvirtualA{};classC:publicvirtualA{};classD:publicB,publicC{};intmain(){cout输出:sizeof(D)8每个类都包含自己的虚指针,但不包含其任何基类的虚指针,那么,为什么class(D)的Size是8? 最佳答案 这取决于编译器的实现。我的编译器是VisualStdioC++2005。代码如下:intmain(){cout会输出sizeof(B):4sizeof(C):4sizeof(D):8B类只有一个虚指针

c++ - C/C++ : Can I keep the cursor in the current line after pressing ENTER?

请问有什么办法可以在按回车后让光标停留在当前行!!例如……#includeintmain(){intd=0;printf("Enteranumber:");scanf("%d",&d);if(d%2)printf("isaOddnumber\n");elseprintf("isaEvennumber\n");return0;}输出示例:Enteranumber:10isaEvennumber...但我需要的是类似的东西:Enteranumber:10isaEvennumber我想在用户输入的数字旁边加上“是偶数”(或“是奇数”) 最佳答案

c++ - std::string::max_size() 作为静态成员

为什么max_size不是std::string的静态成员?这可以编译,但我觉得奇怪的是所有字符串共有的属性只能通过字符串的实例访问:std::size_tmax_size=std::string().max_size();为什么会这样实现? 最佳答案 Whyisn'tmax_sizeastaticmemberofstd::string?因为max_size返回值取决于字符串实例内部使用的分配器实例。 关于c++-std::string::max_size()作为静态成员,我们在Stac