On Tue, Mar 26, 2013 at 9:51 AM, Harg Tholan <hargtholan@gmail.com> wrote:
Do you mean that unordered_map can automatically instantiate a hashing function for any type of pixel? I have tried this:
Ok, I see I was wrong. I simple solution is provided here: http://stackoverflow.com/questions/10405030/c-unordered-map-fail-when-used-w... Taking that you can create the following: template< typename Pixel > struct pixel_hasher { std::size_t operator()( const Pixel& p ) const { typedef channel_type<Pixel>::type channel_t; vector<channel_t> v; static_for_each( p, [&] ( const channel_t& c ) { v.push_back( c ); }); return boost::hash_range( v.begin(), v.end() ); } }; typedef rgb8_pixel_t pixel_t; pixel_t p( 1,2,3); unordered_map< pixel_t, int, pixel_hasher< pixel_t > > n; n[p] = 99; Hope this helps. Christian