Boost logo

Boost Users :

From: Pablo Aguilar (pablo.aguilar_at_[hidden])
Date: 2005-08-19 17:12:32


I believe it's because you can't && an expression to be used within a static
assert.
How about the following:

========================
struct attempt_to_invoke_functor_with_incorrect_number_of_arguments
    : mpl::int_<1>
{
};

template<typename SEQ, int SIZE>
void assertSeqSize()
{
   BOOST_STATIC_ASSERT(( mpl::and_<
        boost::equal_to<boost::mpl::size<SEQ>::type, boost::mpl::int_<SIZE>
>
      , attempt_to_invoke_functor_with_incorrect_number_of_arguments
    ));
}
========================

HTH

Pablo

"Stephen Gross" <sgross_at_[hidden]> wrote in message
news:004d01c5a4f4$9cbf10b0$8df51681_at_sgross...
> I'm trying to static assert the value of a sequence. I've got the syntax
> slightly wrong, but I can't quite figure it out. Here's what my code looks
> like:
>
> ==========================
> template<typename SEQ, int SIZE>
> void assertSeqSize()
> {
> BOOST_STATIC_ASSERT(( boost::equal_to<boost::mpl::size<SEQ>::type,
> boost::mpl::int_<SIZE> > )) &&
> "You have attempted to invoke a functor with the incorrect number of
> Arguments.";
> }
> ==========================

[snip]

> --Steve
>
> Stephen Gross
> Case Western School of Medicine
> Cleveland, OH
>
> "By Grabthar's hammer, by the sons of Worvan, you shall be avenged." - Dr.
> Lazarus


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net