
Dmitry Ivankov wrote:
Hmm, maybe std::numeric_limits isn't specialized for classes? In that case it's possible to use it only for non-classes.
Looks like that 18.2.1/1 and 18.2.1/4 states that numeric_limits is only for fundamental types.
So maybe just fix lexical_cast so that it won't use std::numeric_limits for classes?
numeric_limits *can* be specialised for user defined types, and IMO lexical_cast should use the information. If the only issue is abstract types, can't we simply filter out abstract types before invoking numeric_limits? Note that on compilers that don't support is_abstract fully the class defaults to the same behaviour as is_polymorphic, and while that may then filter out some classes that shouldn't be on broken compilers, it's a quite reasonable compromise. John.