Hi Peeps

Can anyone cast any light on this...

I want to write function which accepts a single pass range of X's, so something like this

struct X { };

template <typename T>
    BOOST_CONCEPT_REQUIRES(
        (( boost::SinglePassRangeConcept<T> )),
        ( typename boost::enable_if<boost::is_same<typename boost::range_value<T>::type, X>, void>::type ))
    my_function( const T & range );

Is that a reasonable construction, or is there a better way to say it?

Next, it doesn't seem to work. It does seem to work if the type to which enable_if resolves is anything
except void, but not for void. Why is this?

TIA

- Rob.