Я хочу добавить функциональность ко всем простым типам в 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...
Вопрос в том, что я уверен, что есть масса нюансов, с которыми нужно разобраться, и написаны специализированные операторы шаблонов; Так есть ли где-нибудь, что это уже было сделано, чтобы я мог использовать это вместо этого?
Boost слишком большой и сложный для размещения в моем проекте, но я могу посмотреть на него для указателей, если там есть такой класс - как он называется, если есть?