cost 368 ms
使用 N size_t 参数在 function scope 内的堆栈上初始化 arrays 时可能出现的问题? - Problems that may arise when initializing arrays on stack inside a function scope with an N size_t parameter?

例如,我有一个 function,它需要一些参数和一个size_t length来初始化 function 内堆栈上的数组。 考虑到以下几点: 严格来说, length只能在1 到 30的范围内(不允许使用 30 的固定最大缓冲区长度)。 该array仅保留在 function 内,仅用于计算结果 ...

如何用非堆大小有限的字符串替换 std::string 成员? - How can I replace an std::string member with a non-heap limited-size string?

我有一个包含一些无处不在的数据结构的代码库; 并且所述结构具有 std::string 成员。 现在,出于某些原因,我希望这个代码库在 std::string 不可用时工作,并且实际上没有动态分配内存(至少不是通常的方式)。 我还可以验证该字符串成员的字符串长度永远不会超过 M 个字符(并且 M 很 ...

如何加载 Vec 的所有条目<t>任意长度到堆栈上?</t> - How can I load all entries of a Vec<T> of arbitrary length onto the stack?

我目前正在使用向量并试图确保我在堆栈上拥有本质上是我的向量数组的内容。 我无法调用Vec::into_boxed_slice因为我在Vec中动态分配空间。 这是可能吗? 在阅读了有关如何实现Vec的 Rustonomicon 之后,它似乎跨越了堆上的指针,在每个 entry 处取消引用。 我想将堆 ...

Class 类型用于堆栈分配。 为什么两个 ID 实例的地址相同? - Class type for stack allocation. Why the address for both ID instances are the same?

平台:Ubuntu终端(Windows的Ubuntu子系统) 编译:g++ 文件.cpp Output:“ID 之间的地址相同” output 不应该提供不同的堆栈地址吗? 我尝试使用原始 integer(而不是 ID class 类型)复制它,它为不同的实例输出不同的地址。 ...

为什么不使用时分配堆栈内存? - Why is stack memory allocated when it is not used?

考虑以下示例: 为vector::empty生成的汇编代码(通过 clang,经过优化): 为什么要分配堆栈空间? 它根本没有被使用。 push和pop可以省略。 MSVC 和 gcc 的优化构建也为此功能使用堆栈空间(请参阅有关Godbolt 的内容),因此必须有一个原因。 ...

元帅大小常量数组 - Marshal size const array

我正在尝试在结构中分配堆栈数组。 好吧,我的意思是指针。 但是我希望在没有额外代码的情况下完成分配,因为我在编写代码时知道大小(我不想在创建结构时做一堆new的)。 如果我什至可以在没有unsafe上下文的情况下做到这一点,那就太完美了。 我尝试了一些东西,但效果不佳。 我是 C# 的新手,所以可能 ...

如何强制MSVC编译器取消大型临时对象的堆栈分配? - How can I compel the the MSVC compiler to elide stack-allocation of large temporary objects?

这个问题不是重复这一个或其他类似的问题。 这个问题是关于初始化和使用结构后清除它的。 更新资料 在阅读您的前几条评论后,我想澄清一下我的问题: 如何强制MSVC编译器取消大堆栈分配? 我已经更新了标题,文本和下面的代码以澄清这一点。 我最近开始使用/GS ...

如何在C ++中模拟堆栈帧? - How can I emulate a stack frame in C++?

我正在编写一个容器,它在内部使用alloca来分配堆栈上的数据。 抛开使用alloca风险 ,假设我必须将它用于我所在的域(它部分是围绕alloca的学习练习,部分是为了调查动态大小的堆栈分配容器的可能实现)。 根据alloca的man页 (强调我的): alloca()函数在 ...

C ++替代C99 VLA(目标:保持性能) - C++ replacement for C99 VLAs (goal: preserve performance)

我正在移植一些C99代码,这些代码大量使用可变长度数组(VLA)到C ++。 我用一个在堆上分配内存的数组类替换了VLA(堆栈分配)。 业绩受到巨大影响,放缓了3.2倍(见下面的基准)。 我可以在C ++中使用什么快速的VLA替换? 我的目标是在重写C ++代码时尽量减少性能损失。 ...

g ++编译器提示要在堆栈上分配 - g++ compiler hints to allocate on stack

是否有任何方法可以使编译器暗示某些对象可能具有更多的静态行为,并在堆栈上分配内容而不是堆? 例如,在某些函数中,字符串对象的大小可能恒定。 我问这个问题是因为我试图通过使用OpenMP来提高应用程序的性能。 我已经将串行部分的时间从50秒改进到了20秒,并通过并行处理提高到了12秒(提到大 ...

如何实现仅在堆栈上分配的字符串 - How to implement a string that solely allocates on the stack

在大约十年前的一个项目中,我们发现std::vector的动态分配导致了严重的性能损失。 在这种情况下,它分配了许多小向量,因此快速解决方案是编写一个类似于向量的类,包含基于堆栈的预分配char数组,用作其容量的原始存储。 结果是static_vector&lt;typename T, st ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM