Not completely. I didn't see that we also need a handling for non-pod
scanner types and that doesn't pop up in the regressions for vc and
intel! (I should have tested CW as well...)
Joel, you fixed that some time ago (in december) and Hartmut reverted
this fix again:
Revision : 1.17
Date : 2006/1/10 23:30:24
Author : 'hkaiser'
State : 'Exp'
Lines : +26 -87
Reverted the recent patch, because it made more problems than goods.
Hartmut didn't answer my private mail yet, however, as Joel's code looks
fine to me, does what it is supposed to do and doesn't cause *any*
regression on the compilers I tested (vc, Intel, cw), I would suggest to
'reanimate' this version. If Hartmut has particular problems, we should
address these on this code base.
ok, fixed now. I assume that ?: is enough to inhibit instantation of
to_int_type and to_char_type if not appropriate. At least CW doesn't
complain anymore. I check it in and wait what other compilers say. The
worst case could be that we need separate implementations of isalpha_
etc. for pod and non-pod and activate them alternatively by enable_if.
I also extended the testcase in order to test all the other primitives, too.
IMO the behaviour for non-pod types is underspecified: currently we
require a conversion to a type that can be handled by isalpha etc. We
are currently *not* able to handle the same conversions for the
wide-char equivalents. This would require a concept that is completely
different from what we have now.