Boost logo

Boost :

From: Dean Michael Berris (mikhailberis_at_[hidden])
Date: 2008-03-21 07:15:49


On Fri, Mar 21, 2008 at 9:17 AM, Eric Niebler <eric_at_[hidden]> wrote:
> Larry Evans wrote:
> > However, I'd imagine some people would want
> > this restricted to just two elements, which could be
> > done with something like:
> <snip>
> >
> > And now, if size<Args>::value is
> > restricted to the Arity in
> > tag_arity<shift_right,Arity> then it
> > would be restricted to 2.
>
> Users may very well want to restrict tag::plus to arity 2 *in their
> domain*, but they shouldn't be foisting that decision on other consumers
> of Proto. The best way to ensure that expressions have the arity you
> expect is to encode that in the grammar for your domain, and check it
> with proto::matches.
>

I'm nowhere near being an expert, but how would a BOOST_STATIC_ASSERT
fit in ensuring that Args has the correct arity provided in the
construction of expr<>? Would there be a way to statically assert that
'Args' has arity 'Arity' from within Proto? Or would that be too much
compile time trouble on top of all the compile time burdens
Proto+Fusion+MPL already bring?

-- 
Dean Michael C. Berris
Software Engineer, Friendster, Inc.
[http://blog.cplusplus-soup.com]
[mikhailberis_at_[hidden]]
[+63 928 7291459]
[+1 408 4049523]

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