의 내가 2 차원 벡터 템플릿 클래스있어 가정하자 :C++ : 비 네이티브 유형의 프로모션
template<typename T> class Vec2 {
T x, y;
// ...
};
가 나는 Vec2<double>
과 Vec2<int>
사이에 합의 결과가 Vec2<double>
될 것이라고 기대를, 하지만 C++은 기본적으로이 작업을 수행하지 않습니다.
내가 잘못 생각하고 있습니까?
이 동작을 시도하고 구현해야합니까?
어떻게 구현해야합니까? 한 가지 방법은 모든 연산자를 오버로드하여 승격 된 유형이 auto
및 decltype
또는 일부 do it yourself type promotion을 사용하여 계산되지만,이 방법은 사소한 일이며 내 작업을 쉽게하기 위해 boost.operators를 사용하지 못하게 할 수도 있습니다. 다른 제안?