-1

データ型 (インデックスとして使用される) を探しています。32 ビット OS では 16 ビット、64 ビット OS では 32 ビットである必要があります。私はVS2010を使用しており、HALF_PTRを使用できることは認識していますが、インデックスに使用するとうまく聞こえず、より意味のある名前にtypedefできますが、その前に使用できる定義済みのデータ型がありますこの目的?

4

1 に答える 1

5

特性を使用して、システムに適した型エイリアスを作成できます。

#include <cstdint>

template <unsigned int> struct HalfPtrImpl;
template <> struct HalfPtrImpl<4> { typedef uint16_t type; };
template <> struct HalfPtrImpl<8> { typedef uint32_t type; };

typedef HalfPtrImpl<sizeof(uintptr_t)>::type HalfPtr;

HalfPtrあなたのタイプとして使用してください。

(上記を数回使用することでショートカットできstd::conditionalます。この猫の皮を剥ぐ方法はたくさんあります。)

于 2013-10-22T21:13:29.843 に答える