使用clang时出现此错误。 为什么operator new不能内联声明?
pthread_create
答案 0 :(得分:3)
整个程序中分配函数的所有使用都必须兼容。在一个翻译单元中使用operator new
分配的内容必须在另一个TU中与operator delete
取消分配。因此,程序必须在任何地方都给出相同的实现,并且替换分配函数不是TU本地事务,而是全局选择。
因此,而不是要求每个TU包含相同的代码(这将破坏静默,非侵入性替换和违反其极难诊断的目的),而要求的是该功能具有外部链接和不要内联。
将分配函数视为程序全局状态的一部分。