Boost logo

Boost Users :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2006-11-16 03:43:40


Hughes, James wrote:

>>>map<int, struct data> mapstuff = map_list_of
>>>(1, {"hello", list_of (3) (4) (2) } ), // note curly braces
>>>(3, {"goodbye", list_of (1) (3) ) } );
>>>
>>>But that doesn't work either.
>>>
>>>Is it actually possible to do something like this, and if so, how?
>>
>>I suspect that you have to provide a constructor for your data class:
>>
>>template< class Range >
>>data( const char* str, const Range& r )
>>: str(str), stuff(boost::begin(r),boost::end(r))
>>{ }
>>
>
>
> I did something along these lines but still got a load of compile
> faults. Will post a more accurate code snippet when time allows, but
> have a deadline end of today!!

You also need to call the constructor when you call map_list_of():

   map_list_of(1, data( "hello", list_of(3)(4)(4) ) );

-Thorsten


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net