
On Wed, 2005-10-19 at 09:16 -0400, David Abrahams wrote:
Do you think the "fill" example would be useful to fill missing values in vector< OptionalPointee >?
Sorry, I don't understand.
Sorry I was in a hurry and didn't describe what I was thinking better. Here is the example from the other email. template< typename OptionalPointee, typename Value_Type > Optional_Pointee fill( Optional_Pointee x, Value_Type & default_value ) { if( x == none ) { x = &default_value; // Does this work with optionals? } return x; } You might use it like this... std::vector< int * > x1; std::vector< optional< int > > x2; ... int default_value = 5; // I imagine this currently fails due to ( x == none ) std::transform( x1.begin(), x1.end(), x1.begin(), fill( _1, default_value ) ); // And this probably fails due to x = &default_value std::transform( x2.begin(), x2.end(), x2.begin(), fill( _1, default_value ) ); I am not using this as an argument against the use of * and ->. I was just wondering if we could make the above (or something similar) work. Hamish