Boost logo

Boost :

From: Manfred Doudar (manfred.doudar_at_[hidden])
Date: 2005-11-16 19:42:04


Manfred Doudar wrote:

>Martin Bonner wrote:
>
>
>
>>>Manfred Doudar wrote:
>>>
>>>
>>>
>>>
>>>
>>>>/* Now, how do I get T out when Rank == 1, ... compiler complains
>>>> about seeing a MyArray/blitz::Array of <T, Rank = 0>
>>>> (, which is not defined for blitz Arrays)
>>>>*/
>>>>template <typename T, int Rank>
>>>>typename boost::mpl::if_
>>>> < typename boost::mpl::equal_to
>>>> < boost::mpl::int_<Rank>
>>>> , boost::mpl::int_<1>
>>>> >::type
>>>> , T
>>>> , blitz::Array<T,
>>>>
>>>>boost::mpl::int_<Rank>::prior::value>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> ^
>>> Oops typo, should be:
>>> MyArray<T,
>>>
>>>boost::mpl::int_<Rank>::prior::value>
>>>
>>>... but nonetheless, the problem remains ...
>>>
>>>
>>>
>>>
>>>
>>>> >::type
>>>>MyArray<T, Rank> :: operator[] (const int& index) throw(); {
>>>> // Slicing
>>>>
>>>>
>>>>
>>>>
>>How about a helper traits class?
>>
>>template <typename T, int Rank>
>>struct SliceType
>>{
>> typedef typename MyArray<T, Rank-1> type;
>>};
>>
>>template <typename T>
>>struct SliceType<T,1>
>>{
>> typedef T type;
>>};
>>
>>template <typename T, int Rank>
>>typename SliceType<T,Rank>::type
>> MyArray<T,Rank> :: operator[] (const int& index) throw();
>>
>>
>>
>>
>>

With a great deal of thanks to Martin, and a few hours sleep,
I've got the thing working.

... Sorry for the noise everyone, and in future I'll try not
to post anything unless I've been otherwise well rested.

Cheers,

-- 
Manfred Doudar
MetOcean Engineers
www.metoceanengineers.com

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