Boost logo

Boost :

Subject: [boost] [type_traits] extension has_operator_xxx - conforming to coding guidelines for ICE
From: Frédéric Bron (frederic.bron_at_[hidden])
Date: 2011-02-03 17:36:56


I have tried to comply with the coding guidelines for integral
constant expressions
(http://www.boost.org/development/int_const_guidelines.html).
I have been able to comply with most of them but still have the following issue:

> Don't use dependent default parameters for non-type template parameters.
> For example:
>
> template <class T, int I = ::boost::is_integral<T>::value> // Error can't deduce value of I in some cases.
> struct foobar;
>
> Rationale: this kind of usage fails for Borland C++. Note that this is only an issue where the default value is dependent upon a previous template parameter, for example the following is fine:

Is there any known workaround for this? In my case, int is replaced by
bool but I think it is the same issue.

Frédéric


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk