![]() |
1
11
取决于“显式不允许堆分配”的含义。 如果您只想防止堆上的直接分配,即:
这足够好了。但它不会阻止您的对象一般存在于堆中。
例如,它不会阻止人们使用
它也不会阻止人们使用
|
![]() |
2
1
这将主要实现你所尝试的。 您的解决方案没有涵盖的是新的,可能在堆中,也可能不在堆中。 |
![]() |
3
1
对于更严格的场景(某些情况下嵌入值或容器的使用),可以禁用copy或甚至默认构造,以及operator=etc。 但是,这将使您摆脱一些有用的构造,并强制您引入自己的语义(在VM IMPLS中更明显的东西;缺少/归纳类似的运算符和不明确的等价/相等机制)。您可能也会看到一些编译器警告,它不会一直运行,但是如果有任何安慰,它可以有一两个用途。 |
![]() |
4
0
不能让运算符new的实现成为assert(0)? |
![]() |
NOBUD · 最大堆插入函数实现C++ 3 年前 |
![]() |
JimBelushi2 · 合并排序创建内存堆 7 年前 |
![]() |
Arda İbrahim Gökçe · 在遍历最小堆时获取垃圾值 7 年前 |
![]() |
Alexy Grabov · 查找最大堆中k个最大元素的位置 7 年前 |
![]() |
Maxxx · 使用堆在O(N log K)时间内查找前K个元素 7 年前 |
![]() |
Karthik · 限制Go堆接口实现的优先级队列的大小 7 年前 |
![]() |
mourinho · 使用数组实现最小堆[关闭] 7 年前 |