Re: [boost] Re: compile-time functions interface

2003-02-02 Thread David Abrahams
Gennaro Prota <[EMAIL PROTECTED]> writes: > On Sun, 02 Feb 2003 15:02:23 -0500, David Abrahams > <[EMAIL PROTECTED]> wrote: > > [...] >>My point is this: the only thing that would make argument_type >>worthwhile, i.e. the ability to do higher-order functional >>programming, really requires that me

[boost] Re: compile-time functions interface

2003-02-02 Thread Gennaro Prota
On Sun, 02 Feb 2003 15:02:23 -0500, David Abrahams <[EMAIL PROTECTED]> wrote: [...] >My point is this: the only thing that would make argument_type >worthwhile, i.e. the ability to do higher-order functional >programming, really requires that metafunctions have a consistent >polymorphic interface

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread David Abrahams
Gennaro Prota <[EMAIL PROTECTED]> writes: > --- David Abrahams <[EMAIL PROTECTED]> wrote: > >> You can do that, but IIUC it won't get you where Genny's trying to go: >> namely that if static_log2 happens to get adjusted so its parameter is >> an unsigned long long constant, you can detect that wit

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread Terje Slettebø
>From: "David Abrahams" <[EMAIL PROTECTED]> > Terje Slettebø <[EMAIL PROTECTED]> writes: > > > As you note, if you change it to match, with unsigned long, it > > works. I think EDG is right on this one, that there has to be an > > exact match, except top-level cv-qualification. > > cv-qualificatio

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread Gennaro Prota
--- David Abrahams <[EMAIL PROTECTED]> wrote: > You can do that, but IIUC it won't get you where Genny's trying to go: > namely that if static_log2 happens to get adjusted so its parameter is > an unsigned long long constant, you can detect that without causing an > error. No. Because in the rea

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread David Abrahams
Terje Slettebø <[EMAIL PROTECTED]> writes: >>From: "David Abrahams" <[EMAIL PROTECTED]> >> I don't even think it works. Throwing this at Comeau online: >> >> template >> struct static_log2 {}; >> >> template >> struct argument_type; >> >> template < unsigned int x > // *** >

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread Terje Slettebø
>From: "David Abrahams" <[EMAIL PROTECTED]> I'm combining a couple of postings here. >Gennaro Prota <[EMAIL PROTECTED]> writes: > > This is a simple question; suppose you have a template like this: > > > > template < unsigned long x > > > struct static_log2 > > { > > BOOST_STATIC_CONST

Re: [boost] Re: compile-time functions interface

2003-02-02 Thread David Abrahams
Gennaro Prota <[EMAIL PROTECTED]> writes: > On Sun, 02 Feb 2003 08:35:56 -0500, David Abrahams > <[EMAIL PROTECTED]> wrote: > >>> This of course works, but the typedef name is quite "log specific"; >>> certainly that's worse than having a generic name available at class >>> scope: >>> >>> >>>t

[boost] Re: compile-time functions interface

2003-02-02 Thread Gennaro Prota
On Sun, 02 Feb 2003 08:35:56 -0500, David Abrahams <[EMAIL PROTECTED]> wrote: >> This of course works, but the typedef name is quite "log specific"; >> certainly that's worse than having a generic name available at class >> scope: >> >> >>template <...> >>struct static_log2 { >> typed