>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