Boost logo

Boost :

From: Hamish Mackenzie (boost_at_[hidden])
Date: 2002-01-28 10:13:03


I am writing some code that uses a C based API (Microsoft's MAPI) and it
would be handy to have mem_var_* classes to access members of structures
without having to write helper functions. Do these exist already?

Something like....

template< Class_Type >
class const_mem_var_ref_t : public
    std::unary_function< Class_Type, Member_Type >
{
public:
  explicit const_mem_var_ref_t( Member_Type Class_Type::* ptr )
    : ptr_( ptr ) {}

  const Member_Type &operator()( const Class_Type &x ) const
  {
    return x.*ptr_;
  }

private:
  Member_Type Class_Type::* ptr_;
};

template< class Class_Type, class Member_Type >
const_mem_var_ref_t< Class_Type, Member_Type >
    const_mem_var_ref( Member_Type Class_Type::* ptr )
{
  return const_mem_var_ref_t< Class_Type, Member_Type >( ptr );
}


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