>From: "Hartmut Kaiser" <[EMAIL PROTECTED]>

> David Abrahams wrote:
> 
> > > //  The following expands to
> > > //
> > > // typedef char (&sizeN_t)[N];
> > > //
> > > //  for N = 1..BOOST_MAX_SIZETYPE_COUNT
> > > #define SIZETYPE(z, n, nil) \
> > > typedef char (&size ## n ## _t)[n]; \
> > > /**/
> >
> > Careful; isn't the symbol "_t" reserved to the implementation
> > in this context?
> 
> The purpose of the macros was to generate a couple of
>     typedef char (&sizeN_t)[N];   // for N=1..MAX
> Statements, so _t is never seen by the compiler.
> 
> But anyway the solution proposed by Paul is cleaner, so I vote for it.

>From Paul's posting:

> You can achieve the effect you want easily:
> 
> template<int I> struct size_descriptor {
>     typedef char (& type)[I];
> };
> 
> typedef size_descriptor<1>::type yes_type;
> typedef size_descriptor<2>::type no_type;
> 
> ...or something similar, which solves the problem once and for all.

Looks good. What should we call it? size_descriptor, like here?


Regards,

Terje

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

Reply via email to