C++. Meaning of var1 = new (_field) Constructor()
C++. Meaning of var1 = new (_field) Constructor()
我发现这个结构读取了别人C++代码:
_worklist = new (_arena) Block_List();
我的C++有点生疏,有人可以解释一下这是怎么回事吗?我不明白这段代码在做什么。
编辑:
_arena是竞技场类型的字段。
编辑2:
这是Block_List的代码
编辑3:我的错,我现在明白应该提供更多上下文,这是整个代码:http://hg.openjdk.java.net/hsx/hsx24/hotspot/file/ed3ac73a70ab/src/share/vm/opto/live.cpp#l52
放置语法用于调用接受其他参数的自定义operator new
。在这种情况下,Block_List
派生自 ResourceObj
,ResourceObj
包含以下函数:
void* operator new(size_t size, Arena *arena) {
address res = (address)arena->Amalloc(size);
DEBUG_ONLY(set_allocation_type(res, ARENA);)
return res;
}
表达式 new (_arena) Block_List();
将调用此operator new
,传入所需的大小和传入的值。该函数返回要用于对象的地址。
相关文章:
- C++如何通过"constructor initialization"初始化行变量?
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- std::span constructor, libcxx vs libstdc++, template vs non-
- 如何解决C++中声纳库贝静态代码分析错误"Explicitly define the missing copy constructor, move constructor .."
- 在 g++ 6.2.1 中将参数包转发到 constructor() 失败
- 尝试实例化模板类的对象时出现"No Matching Constructor"错误
- C++: std::generate in constructor
- 为什么在 C++ 中说"can't find constructor"?
- "No default constructor exists "即使我不需要它
- 为什么我会收到此警告? "Member 'x' was not initialized in this constructor"
- GCC __attribute__((constructor)) 在对象构造函数之前调用
- 为什么"an inherited constructor is not a candidate for initialization from an expression of the same or
- this->field vs. this.field in C++
- "Field has incomplete type"引用自己的类的问题
- 我的模板二叉搜索树类给出了错误"Node<T>: no appropriate default constructor available,"如何解决这个问题?
- java.lang.Field 等效于 c++ 中
- G++ 4.4.7 中的"names the constructor, not the type"
- "Prototype pattern"和"Virtual constructor"是相同的模式吗?
- 为什么我收到错误:"there is more than one default constructor"?
- 从constructor参数中初始化const多维数组中的const多维数组