У меня есть класс для формата с плавающей запятой, где размер мантиссы и экспоненты можно указать в качестве параметра шаблона:
template <int _m_size, int _exp_size>
class fpxx {
public:
const int exp_size = _exp_size;
const int m_size = _m_size;
bool sign;
unsigned exp;
unsigned m;
...
}
У меня также есть оператор друга + для добавления 2 таких чисел:
friend fpxx<_m_size, _exp_size> operator+(const fpxx<_m_size, _exp_size> left, const fpxx<_m_size, _exp_size> right)
{
...
}
Это прекрасно работает.
Это позволяет мне делать такие вещи:
fpxx<18,5> a, b, r;
r = a + b;
Однако я также смогу создать оператора + друга, который делает это возможнымдобавить числа с разными размерами мантиссы и экспоненты.Вот так:
fpxx<10,4> a;
fpxx<12,4> a;
fpxx<18,5> r;
r = a + b;
Но я понятия не имею, как сделать объявление функции для этого.
Возможно ли это?
Спасибо!Том