- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Types | Public Member Functions | Protected Member Functions
efl::eo::inherit< D, E > Struct Template Reference
Efl_Cxx_API

Template-class that allows client code to inherit from EO C++ Classes without the need to make explicit calls to EO methods — that would naturally be necessary to register itself in the EO Subsystem. More...

## Public Types
typedef inherit< D, E...> | inherit_base

## Public Member Functions
template<typename... Args>
| inherit (Args &&...args)
| Class constructor. More...
| ~inherit ()
| Class destructor.
Eo * | _eo_ptr () const
| Gets the EO Object corresponding to this EO C++ Object. More...
Eo_Class const * | _eo_class () const
| Gets the EO Class corresponding to this EO C++ Class. More...
template<typename T >
void | parent_set (T &p_)
Eo * | _release ()

## Protected Member Functions
| inherit (inherit const &other)
| Copy constructor.
inherit & | operator= (inherit const &other)
| Assignment Operator.

## Detailed Description

### template<typename D, typename... E>
struct efl::eo::inherit< D, E >

Template-class that allows client code to inherit from EO C++ Classes without the need to make explicit calls to EO methods — that would naturally be necessary to register itself in the EO Subsystem.

Parameters

  D | The derived class
  O | The parent class
  E | Class extensions (either mixins or interfaces)

The derived class `D` will inherit all EO operations and event callbacks from the parent class `P`, as well as from the `Base Class` (efl::eo::base) since every EO C++ Class must inherit from it.

efl::eo::inherit makes use of meta-template elements to build (in compile-time) code capable of registering `D` as an EO Class within EO Subsystem. Each class is registered only once upon instantiation of an object of its type.

Note
  Function overriding is currently not supported.

## Constructor & Destructor Documentation

template<typename D , typename... E>
template<typename... Args>

efl::eo::inherit< D, E >::inherit | ( | Args &&... | args | ) |
| inline

Class constructor.

inherit has a "variadic" constructor implementation that allows from zero to EFL_MAX_ARGS heterogeneous parameters.

## Member Function Documentation

template<typename D , typename... E>

Eo* efl::eo::inherit< D, E >::_eo_ptr | ( |  | ) | const
| inline

Gets the EO Object corresponding to this EO C++ Object.

Returns
  A pointer to the EO Object.

template<typename D , typename... E>

Eo_Class const* efl::eo::inherit< D, E >::_eo_class | ( |  | ) | const
| inline

Gets the EO Class corresponding to this EO C++ Class.

Returns
  A pointer to the EO Class.