所以我一直在尋找通過一些刺激源代碼和跨越這來了:爲什麼boost :: checked_delete「故意複雜」?
(從<boost/checked_delete.hpp>
)
template<class T> inline void checked_delete(T * x)
{
// intentionally complex - simplification causes regressions
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
(void) sizeof(type_must_be_complete);
delete x;
}
任何人碰巧知道爲什麼以這種方式實現的? size(T)(例如)已經足夠了嗎?
好問題:) –