SummaryDon't hide good new s: If a class defines any overload of operator new , it should provide overloads of all three of plain, in-place, and non-throwing operator new . If you don't, they'll be hidden and unavailable to users of your class.