
Boost : 
From: Gabriel Dos Reis (Gabriel.DosReis_at_[hidden])
Date: 20000721 16:50:28
"Paul A. Bristow" <pbristow_at_[hidden]> writes:
 I am posting to boost files a draft of math constants using templates
 for a few sample constants.

 There are several things I am uncertain about:

 1 It seems that, as with numeric_limits, integral constants
 are different. Should I follow the inplmentation of
 limits to create two template classes, perhaps with
 inheritance? Or is this
 an unnecessary complication?  users who instantiate
 math_const<int>::pi will just get a link failure,
 which probably serves them right!
I'll suggest not to care  constraint is in use.
But if you insist, you might want to split math_const members into
small classes of semantically related entities, i.e.
template<typename T, bool>
struct problematic_constants {
static T e();
static T pi();
};
// this is for integer types.
template<typename T>
struct problematic_constants<T, true> {};
tmeplate<typename T>
struct math_constants
: problematic_constants<T, std::numeric_limits<T>::is_integer> {
// ...
};
so that any use of math_constants<int>::pi is synonymous of invalid
use of an identifier.
 Gaby
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk