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:
> > 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