草庐IT

layout_align_parent_right

全部标签

c++ - 我什么时候应该使用_aligned_malloc()?

我一直在阅读遗留代码,其中包含自定义内存池系统,然后我发现该代码使用了_aligned_malloc。我想知道这个功能是什么,我什么时候必须使用它。谢谢大家。我确实阅读了MSDN,但我想要的是类似“想要特定对齐的原因的一个示例是在x86上将数据与SSE指令集一起使用,其中数据必须对齐到16的倍数”。我终于明白那些代码是什么意思了。再次感谢。 最佳答案 当内存分配的对齐对您很重要时,此函数很有用。对齐是指返回的指针的数值必须能被某个数整除,即。((unsignedint)ptr)%alignment的计算结果应为0。需要特定对齐的一个

c++ - 如何使用 std::aligned_union

在尝试学习如何使用std::aligned_union时,我找不到任何示例。我的尝试遇到了我不知道如何解决的问题。structinclude{std::stringfile;};structuse{use(conststd::string&from,conststd::string&to):from{from},to{to}{}std::stringfrom;std::stringto;};std::aligned_union::typeitem;*reinterpret_cast(&item_)=use{from,to};当我尝试在VC++2013Debug模式下运行程序时,我在me

c++ - 格式化输出流,ios::left 和 ios::right

我有这个代码:cout但输出并不像我预期的那样。而不是:1212结果是:1212问题是什么?我设置了'std::ios::left'但它没有任何区别? 最佳答案 除非你感到自虐,否则就使用://rightjustifybydefault.cout 关于c++-格式化输出流,ios::left和ios::right,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9947336/

c++具有相同变量名的多个 parent

classA{protected:intvar;};classB{protected:intvar;};classC:publicA,publicB{};这里发生了什么?变量是否合并?我可以具体调用一个吗,比如B::var=2等。 最佳答案 C类将有两个变量,B::var和A::var。在C之外,您可以像这样访问它们(如果您更改为public:),Cc;c.A::var=2;尝试访问c.var将导致错误,因为没有名为var的字段,只有A::var和B::var。在C中,它们的行为类似于常规字段,同样,名称为A::var和B::var

c++ - QWidget的 parent 的目的是什么?

如果我将任何小部件子​​类化,通常的模式是:ZTabWidget::ZTabWidget(QWidget*parent):QTabWidget(parent){blah...blah...}通常的模式是:WidgetBwidgetb=newWidgetB(widgeta)widgeta.addWidget(widgetb);将我所有的小部件指定为主窗口作为它们各自的父级有什么坏处吗?尽管按照addWidget层次结构,大多数这些小部件都有另一个小部件作为addWidget父级:WidgetBwidgetb=newWidgetB(mainWindow)widgeta.addWidget(

c++ - alignas 说明符 vs __attribute__(aligned),c++11

我目前正在使用C++11开发操作系统内核,我遇到了一个问题,我似乎无法找到自己的答案。目前我正在对齐我的分页结构,使用编译器特定的属性(例如gcc的__attribute__(aligned)),但是我想改用C++11alignas说明符,在Clang++这不是问题,因为它很乐意接受4096对齐作为alignas的参数,但是G++不接受!所以首先,alignasspecifier和gcc__attribute__(aligned)之间的主要区别是什么,显然两者都确保与特定值对齐,但是gcc中的alignas说明符似乎有128的限制,而属性似乎几乎没有限制,这是为什么?另外,为什么不能将

c++ - `std::alignment_of` 与 `alignof`

我刚刚偶然发现了std::alignment_of类型特征,以及它即将成为friend的std::alignment_of_v。它们似乎经过专门设计,相当于对alignof的简单调用。,并且将来添加的_v助watch明它不仅仅是一个遗留位。当我们有alignof时,std::alignment_of(_v)有什么用? 最佳答案 它们几乎完全是多余的。正如@Revolver指出的那样,它们在不同的论文中被介绍过,并且alignment_of来自boost几乎一字不差。但这并不意味着该特征是无用的。Atemplateclass可以传递给

c++ - 什么是 "right"在 C++ 中避免别名(例如,将容器的元素添加到自身时)的方法?

std::vectora;a.push_back(1);a.push_back(a[0]);我justlearned上面的代码可能非常危险。(如果原因不明显,你并不孤单......对我来说也不明显。)我的问题:处理它的“标准”方法是什么?制作一个新变量然后立即将其分配给之后的东西对我来说似乎有点奇怪。有更好的处理方法吗?您如何训练自己注意此类别名问题?您在寻找什么模式?我不知道要承认这种情况;当我了解C中的restrict关键字时,我才了解到别名,直到现在我才明白问题的真正所在。编辑:我很乐意接受一个答案,但问题的第(2)部分似乎没有得到回答。我想知道人们使用什么策略来定位他们编写的代

c++ - aligned_storage 的基本用途是什么?

std::tr1::aligned_storage的基本用法是什么?它可以用作像下面这样的数据类型Foo的自动存储器吗?structFoo{...};std::tr1::aligned_storage::value>::typebuf;Foo*f=new(reinterpret_cast(&buf))Foo();f->~Foo();如果是这样,在buf中存储多个Foo怎么样,std::tr1::aligned_storage::value>::typebuf;Foo*p=reinterpret_cast(&buf);for(inti=0;i!=5;++i,++p){Foo*f=new(

c++ - 演绎指南、模板和子对象 : which compiler is right?

考虑以下片段:structS{S(){}templatestructT{T(B&&){}};templateT(B&&)->T;};intmain(){S::Tt{0};}铿锵acceptsit而GCCrejectsthecode出现以下错误:prog.cc:10:5:error:deductionguide'S::T(B&&)->S::T'mustbedeclaredatnamespacescope这是有效的代码吗?哪个编译器是正确的,GCC还是Clang? 最佳答案 根据http://en.cppreference.com/w/