
Boost : 
From: Matthias Schabel (boost_at_[hidden])
Date: 20040112 22:17:50
> I just want to note that support of std::complex would require
> operators with mixed underlying types. That is,
>
> template <typename u1, typename u2, typename v1, typename v2>
> unit<unit_product_type<u1, u2>::type, number_product_type<v1,
> v2>::type>
> operator* (unit<u1, v1>, unit <u2, v2>) { ... }
>
> rather than
>
> template <typename u1, typename u2, typename v>
> unit<unit_product_type<u1, u2>::type, v>
> operator* (unit<u1, v>, unit <u2, v>) { ... }
>
> This is because one would frequently need to multiply a complex by a
> real.
This is a good point  in fact, since I'm allowing userdefined classes
as value types,
I really should template multiplication and division on two classes.
Unfortunately,
that means that there needs to be a definition of
multiply<T,V>::type... Hmm...
>
> Maybe std::complex< unit<electric_current, double> > is not such a bad
> idea?
Could also work, I suppose. Seems backwards to me, though.


Matthias Schabel, Ph.D.
Utah Center for Advanced Imaging Research
729 Arapeen Drive
Salt Lake City, UT 84108
8015879413 (work)
8015853592 (fax)
8017065760 (cell)
8014840811 (home)
mschabel at ucair med utah edu
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk