2003 年頃のI/O Kitコードを更新しようとしていますが、何か奇妙なことに実行してい__LP64__
ます。プリプロセッサ マクロが設定されている場合にのみ、メソッドが純粋仮想として宣言されている場所がいくつかあります。IOBlockStorageDeviceからの例:
public
#ifdef __LP64__
virtual IOReturn getWriteCacheState(bool *enabled) = 0;
#else /* !__LP64__ */
virtual IOReturn getWriteCacheState(bool *enabled); /* 10.3.0 */
#endif /* !__LP64__ */
上記の例で、10.3 ではなく >=10.4 で getWriteCacheStatus の実装を強制するのはなぜですか? これは「以前にこれを行うべきだった」という単なるケースですか、それとも私が見ていないより深い何かがあるのですか (通常はそうです)。