代码之家  ›  专栏  ›  技术社区  ›  amit kumar

在C++中重载全局运算符新/删除

  •  8
  • amit kumar  · 技术社区  · 15 年前

    http://www.informit.com/articles/article.aspx?p=30642&seqNum=3 以及使用英特尔TBB分配器的建议 http://www.intel.com/technology/itj/2007/v11i4/5-foundations/5-memory.htm

    或者我应该在每个翻译单元中使用“gcc-includeallocator.h…”,其中包括Allocator.h(before)?我希望尽可能保持代码平台的独立性。所有编译器都支持类似于“gcc-include”的东西吗?

    2 回复  |  直到 12 年前
        1
  •  14
  •   MSN    15 年前

    如果你想超负荷的全球 operator new operator delete ,您只需要实现它。您不需要在任何地方都显式地定义它,因为它已经被定义为语言的一部分。

    编辑:如果您想定义一个采用不同参数的新操作符,那么您需要#在所有地方都包含它。不管你怎么做,这取决于你;这主要是风格的问题。

    别忘了实现global operator new和delete的所有变体: new new[] , delete delete[] ,以及 std::nothrow 变体。

        2
  •  2
  •   wchung    15 年前