Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

# openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object > Class Template Reference

Concrete pointer-to-polymorphic-member type. More...

`#include <openvrml/node_impl_util.h>`

Inheritance diagram for openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >:
[legend]

List of all members.

## Public Member Functions

| ptr_to_polymorphic_mem_impl (Member Object::*ptr_to_mem)
| Construct.
virtual | ~ptr_to_polymorphic_mem_impl () throw ()
| Destroy.
virtual MemberBase & | deref (Object &obj)
| Dereference.
virtual const MemberBase & | deref (const Object &obj)

## Private Attributes

Member Object::* | ptr_to_mem
| Pointer-to-member.

## Detailed Description

### template<typename MemberBase, typename Member, typename Object>
class openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >

Concrete pointer-to-polymorphic-member type.

Template Parameters:

  | MemberBase | the base type of the member.
  | Member | the concrete type of the member.
  | Object | the type that contains the member.

See also:
  openvrml::node_impl_util::ptr_to_polymorphic_mem

## Constructor & Destructor Documentation

template<typename MemberBase , typename Member, typename Object>

openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >::ptr_to_polymorphic_mem_impl | ( | Member Object::* | ptr_to_mem | ) | `[inline, explicit]`

Construct.

Parameters:

  `[in]` | ptr_to_mem | pointer-to-member.

template<typename MemberBase , typename Member , typename Object >

openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >::~ptr_to_polymorphic_mem_impl | ( |  | ) | throw ()`[inline, virtual]`

Destroy.

Template Parameters:

  | MemberBase | the base type of the member.
  | Member | the concrete type of the member.
  | Object | the type that contains the member.

## Member Function Documentation

template<typename MemberBase , typename Member , typename Object>

MemberBase & openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >::deref | ( | Object & | obj | ) | `[inline, virtual]`

Dereference.

Template Parameters:

  | MemberBase | the base type of the member.
  | Member | the concrete type of the member.
  | Object | the type that contains the member.

Returns:
  a reference to the base type of the member.

Implements openvrml::node_impl_util::ptr_to_polymorphic_mem< MemberBase, Object >.

template<typename MemberBase , typename Member , typename Object>

const MemberBase & openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >::deref | ( | const Object & | obj | ) | `[inline, virtual]`

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns:
  a `const` reference to the base type of the member.

Implements openvrml::node_impl_util::ptr_to_polymorphic_mem< MemberBase, Object >.

## Member Data Documentation

template<typename MemberBase, typename Member, typename Object>

Member Object::* openvrml::node_impl_util::ptr_to_polymorphic_mem_impl< MemberBase, Member, Object >::ptr_to_mem`[private]`

Pointer-to-member.

Template Parameters:

  | MemberBase | the base type of the member.
  | Member | the concrete type of the member.
  | Object | the type that contains the member.