だから私はいくつかのブーストソースコードを見ていると、この出くわした:なぜ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;
}
誰もがそれはこのように実装されている理由を知ることが起こりますか? sizeof(T)(例えば)はすでに十分ではないでしょうか?
良い質問:) –