要看你所谓的 "leak" 是要侦测什么东西, 在用 ctor/dtor 改变物件的 lifetime 以外, 还需要考虑这个物件本身占据的内存是否有被释放, ctor/dtor 能够管理的仅仅只有它的 sub-object 可能占据的内存而已,为了让使用者能更好好地控管所有资源, C++允许你多载new/delete operator, 你可以透过为特定类别多载new/delete 来追踪物件的使用情形, 就像这个范例一样
https://wandbox.org/permlink/aRJMu6Y4zlQiFZkU因为物件占据的空间是可以被重复使用的, 所以 ctor/dtor 无法做到更细致的追踪, 所以不只是 placementnew, 连 array new 都会需要去多载来获得所有资讯