static typename result_of::bandwidth1< T >::type bandwidth2( const Id& id ) { return bindings::bandwidth1( id.get() ); }
static typename result_of::stride1< T >::type stride2( const Id& id ) { return bindings::stride1( id.get() ); }
static typename result_of::end_value< T >::type end_value( Id& id ) { return bindings::end_value( id.get() ); }
// Flip size1/size2 static typename result_of::size2< T >::type size1( const Id& id ) { return bindings::size2( id.get() ); }
static typename result_of::end_value< T >::type end_value( Id& id ) { return bindings::begin_value( id.get() ) + offset( id.get(), id.m_index, size1(id) ); }
static typename result_of::begin_value< T >::type begin_value( Id& id ) { return bindings::begin_value( id.get() ) + offset( id.get(), 0, id.m_index ); }