>From: "David Abrahams" <[EMAIL PROTECTED]>

> "Jaap Suter" <[EMAIL PROTECTED]> writes:
>
> > Mm, I still don't quite understand. Consider the following function:
> >
> >     void foo( int_c< 0 > );
> >
> > Shouldn't the following code:
> >
> >     foo( int_c< minus< int_c< 4 >, int_c< 4 > >::type > );
> >
> > Behave the same as this:
> >
> >     foo( minus< int_c< 4 >, int_c< 4 > >::type );
>
> We'd like it to.  However, as Aleksey said, until we get typedef
> templates, there's no way to make int_c<0> into the same type as
> integral_c<int,0>.  The result of
>
>          minus< int_c< 4 >, int_c< 4 > >::type
> is
>         integral_c<int,0>

You could get the above code to compile, if they were related by
inheritance, and you use "void foo( integral_c<0> )", instead. For example:

template<int N>
struct int_c : integral_c<int, N> {};


Regards,

Terje

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to