VisualStudio2010でコンパイルされるC++の強い型の整数が欲しいのですが。
一部のテンプレートで整数のように機能するには、このタイプが必要です。特に、次のことができる必要があります。
StrongInt x0(1); //construct it.
auto x1 = new StrongInt[100000]; //construct it without initialization
auto x2 = new StrongInt[10](); //construct it with initialization
私は次のようなものを見てきました:
class StrongInt
{
int value;
public:
explicit StrongInt(int v) : value(v) {}
operator int () const { return value; }
};
また
class StrongInt
{
int value;
public:
StrongInt() : value(0) {} //fails 'construct it without initialization
//StrongInt() {} //fails 'construct it with initialization
explicit StrongInt(int v) : value(v) {}
operator int () const { return value; }
};
これらはPODではないため、完全には機能しません。