|
Boost : |
Subject: Re: [boost] [Review Request] Multiprecision Arithmetic Library
From: Andrii Sydorchuk (sydorchuk.andriy_at_[hidden])
Date: 2012-04-03 18:49:46
>
> What is the result type of operator+ on this upper bound range? Currently
> the compiler fails.
Following code compiles for me:
template <int N>
struct big_int {
big_int() { val = N; }
template <int M>
big_int<(N>M?N:M)> operator+(const big_int<M> &that) const {
return big_int<(N>M?N:M)>();
}
int val;
};
int main() {
big_int<1> a;
big_int<2> b;
std::cout << (a + b).val << std::endl;
std::cout << (b + a).val << std::endl;
}
> I hope this answers to your argument against arithmetic operators growing
> automatically the range of the result.
And do you think this is worth the effort? Also I wouldn't like the idea
of fixed_point<range,0> structures. It is going to be too complicated from
the user perspective. All I need from fixed integer library is efficient
fixed integer type (behaving like C++ integral types) and no complex
structures to compute addition, multiplication, etc.
Andrii
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk