Boost logo

Boost :

Subject: Re: [boost] [contract] static if instead of assertion requirements
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2012-10-03 00:10:58


On 10/02/2012 11:32 PM, Lorenzo Caminiti wrote:
> Hello all,
>
> I was reading the proposal to add "static if" to C++1x and I will use
> such a syntax for assertion requirements:
> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3329.pdf
>
> Current syntax for assertion requirements:
>
> postcondition(
> back() == value, requires boost::has_equal<T>::value
> )
>
> Will be replaced with static if:
>
> postcondition(
> static if(boost::has_equal<T>::value) (
> back() == value
> ) // optional else ( ... )
> )
>
> If there were interested, I could even provide a separate
> BOOST_STATIC_IF(const_condition, then_code, else_code)... however,
> such a macro could only be used at namespace and class scope, not a
> function scope :(

Huh? How does that work?

The only way to implement static if that I know of only works at
function scope.


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