У меня есть структура, содержащая двойной и несколько флагов, но я хотел бы использовать ее в своем коде, как если бы это был только этот двойной. Есть ли способ упростить следующий код, чтобы все математические операторы, выполняемые в экземпляре этой структуры, выполнялись в содержащем двойнике? Мой код работает, но я подозреваю, что С++ имеет очень элегантное и короткое решение для моей проблемы.
struct SomeStruct
{
double value;
bool someFlag;
bool someOtherFlag;
operator double(){return value;}
void operator=(double newValue){value = newValue;}
void operator+=(double valueToAdd){value += valueToAdd;}
void operator-=(double valueToSubtract){value-= valueToSubtract;}
void operator/=(double divisor){value /= divisor;}
void operator*=(double multiplier){value *= multiplier;}
double operator+(double valueToAdd){return value + valueToAdd;}
...
}