Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2007-10-24 11:58:02


Neal Becker wrote:
> I'm a bit confused.
>
> I'm working with blitz++. It has
>
> template<typename T, int N> class Array ...
>
> which already has a begin(), end(), but I can't use them. I'm specializing
> boost::begin,end,etc to hide them (I don't want to modify the blitz Array
> class)
>
> If I specialize range_begin:
>
> namespace boost {
>
> template<typename T, int N>
> inline typename blitz::array_iterator< blitz::Array<T,N> >::type
> range_begin (blitz::Array<T,N> & a) {
> return blitz::range_begin (a);
> }
> }

(Terminology issue: this is an overload, not a specialization.)

The correct place for the range_begin() overload for conforming
compilers would be in the same namespace as the Array class. That way,
it is found via ADL.

HTH,

-- 
Eric Niebler
Boost Consulting
www.boost-consulting.com

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