|
Boost : |
From: Steven Watanabe (steven_at_[hidden])
Date: 2007-03-28 15:36:38
AMDG
Eric Lemings <lemings <at> roguewave.com> writes:
> Question. Does this base_unit_converter class template imply that there
> must be a template specicialization for every conversion between all
> combinations of compatible units? If so, I would have a serious issue
> with that.
Answer. Yes it does. If it is too much of a problem
you can use partial specialization.
struct currency_tag : ordinal<10> {}; //physical units use 1-9
template<int N>
struct currency : ordinal<currency_base + N> {};
typedef currency<0> yen;
const char* get_currency_name(yen) { return("yen"); }
typedef currency<1> us_dollars;
...
template<int N1, int N2>
struct base_unit_converter<currency_tag, currency<N1>, currency<N2> > {
typedef ... type;
static type value() {
return(
lookup_currency_conversion(
get_currency_name(currency<N1>()),
get_currency_name(currency<N2>())));
}
};
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk