bool operator()( const KEY& lhs, const KEY& rhs ) const { boost::shared_ptr<KEY::element_type> shared_lhs = lhs.lock(); boost::shared_ptr<KEY::element_type> shared_rhs = rhs.lock(); return *shared_lhs < *shared_rhs; }
size_t operator()( const KEY& key ) const { boost::shared_ptr<KEY::element_type> shared_key = key.lock(); return static_cast<size_t>( *shared_key ); }