Предположим, у меня есть класс векторного 2D-шаблона:
template<typename T> class Vec2 {
T x, y;
// ...
};
Я ожидаю, что результатом суммы между Vec2<double>
и Vec2<int>
будет Vec2<double>
, но C ++ не будет делать это по умолчанию.
Я не так думаю?
Должен ли я попытаться реализовать это поведение?
И как я должен был бы реализоватьтот?Одним из способов может быть перегрузка любого оператора, чтобы вычисляемый тип вычислялся с использованием auto
и decltype
или некоторых сделать это самостоятельно повышение типа , но этот способ совсем не тривиалендаже не позволил бы мне использовать boost.operators для облегчения моей работы.Другие предложения?