分配函数定义
Allocation function definition
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运算符删除;
我希望这能回答你的问题。
相关文章:
- 在命名空间中定义函数还是限定函数
- 为什么在定义函数之前先声明它
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 这个c++代码是如何在没有定义函数的情况下运行的
- 具有外部"c"和程序集的未定义函数
- 已定义函数时出现 G++ "未定义的引用"错误
- 将自定义函数传递到基抽象类中以延迟执行
- C++使用 rand 定义函数语法
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 将具有固定签名的自定义函数名称注入 CRTP
- 使用定义函数模板别名
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 在内联程序集中定义函数和从 C++ 调用时出现问题
- 在 Metal 着色器代码中,如何定义函数的 in/out 参数变量?
- 声明和定义函数静态会产生"undefined reference to function_name()"
- 朋友定义函数的名称空间是什么
- 介子 对用户定义函数的未定义引用
- 如何使用 "using" 关键字定义函数原型/签名
- 在 C 结构中定义C++函数