У меня есть сомнения, его правильная поддержка операторов для разных типов пользовательского класса? Предположим, что мы имеем это:Поддержка различных типов для перегруженных операторов?
template<class T>
class C { /* Class implemantation */ }
int main() {
C<int> someObject;
C<double> otherObject;
std::cout << someObject + otherObject;
}
Это правильно поддерживать оператор + для объекта C ВЗ типа Int и объект C типа двойной?
Поддерживает ли C оба типа в целом? Существует ли конструктивный способ реализации оператора '+' для обоих типов? – IllusiveBrian
Это зависит от вас. Вы можете заставить его работать автоматически. Вы можете сделать так, чтобы пользователю нужно было сделать static_cast (оператор преобразования). Или вы можете это запретить. Проблема с автоматическим - какой тип должен получить приоритет? –