C++ のすべての単純型に機能を追加しようとしています。
カプセル化する型をテンプレート パラメーターとして受け取り、すべての演算子を定義して、カプセル化されたクラスがカプセル化された単純な型とまったく同じように機能する、単一のテンプレート クラスを作成したいと考えています。
このようなもの:
template <typename _SimpleType_>
class Attribute
{
public:
Attribute(_SimpleType_ value){ m_value = value; }
~Attribute(){}
// Cast
operator _SimpleType_() { return(m_value); }
// Comparisons
bool operator==(const a& other) const { return a == m_value; }
etc...
private:
_SimpleType_ m_value;
}
// Use like:
Attribute<int> i = 20;
while(i)
{
if((i & 0xF) == 0)
{
i >>= 2;
}
i--;
} etc...
問題は、対処しなければならない微妙なニュアンスがたくさんあり、特殊なテンプレート オペレーターが書かれていることです。代わりにそれを使用できるように、これが既に行われている場所はありますか?
ブーストは大きすぎて複雑すぎてプロジェクトに入れることができませんが、このようなクラスがそこにある場合はポインタを調べることができます-ある場合、その名前は何ですか?