分配函数定义

Allocation function definition

本文关键字:定义 函数 分配      更新时间:2023-10-16

C++程序最多应提供一个可替换的定义分配或解除分配功能。

程序

int main(){ }

没有提供任何定义,而不是main,但它是有效的。谁提供分配或解除分配功能的定义?

正如引号所说,C++程序最多应提供其中一个函数。你的不提供,所以没关系。在这种情况下,它使用标准库提供的默认分配和解除分配函数,如您引用的句子所述:

库提供全局分配和解除分配函数的默认定义一些全局分配和解除分配函数是可替换的(18.6.1(。C++程序最多应提供一个可替换分配或解除分配函数的定义任何这样的函数定义都会替换库中提供的默认版本(17.6.4.6(。以下分配和释放函数(18.6(在程序的每个翻译单元的全局范围内隐式声明。

void* operator new(std::size_t);
void* operator new[](std::size_t);
void operator delete(void*);
void operator delete[](void*);

我不确定我是否理解你的问题,但标准也规定了以下内容:

任何此类函数定义都将替换库中提供的默认版本(17.6.4.6(解除分配函数(18.6(是在全局范围内隐式声明的在程序的每个翻译单元中:
void*运算符new(std::size_t(
void*操作员new
void运算符delete(void*(
void运算符删除;

我希望这能回答你的问题。