| Kea 3.0.2-git

isc::data::ElementValue< T > Class Template Reference

Template class for converting a value encapsulated in the `Element` object into a simple type. More...

`#include <element_value.h>`

## Public Member Functions
T | operator() (ConstElementPtr el) const
| Function operator extracting an `Element` value as integer.

## Detailed Description

template<typename T>
class isc::data::ElementValue< T >

Template class for converting a value encapsulated in the `Element` object into a simple type.

The `Element` object provides a set of accessors to retrieve values of different types it encapsulates. These methods however can't be always used in template methods and classes.

Consider a template function which returns a value of a type specified as template argument. In order to convert a value held in the `Element` object it would have to conditionally call this object's accessors to return the value of the appropriate type. This would however fail to compile because the compiler would check for all possible value types returned by the `Element` accessors and report an error for those that don't cast to the returned type.

This class provides a mechanism to extract the value of the appropriate type from the `Element` object within the template function. It comes with a number of class specializations for various data types to be returned. The default implementation calls `Element::intValue` and casts it to the returned type. There are class specializations for `double`, `bool` and `string`.

Template Parameters

  T | Type of the value to be extracted.

Definition at line 43 of file element_value.h.

## Member Function Documentation

## ◆ operator()()

template<typename T>

T isc::data::ElementValue< T >::operator() | ( | ConstElementPtr | el | ) | const
| inline

Function operator extracting an `Element` value as integer.

Parameters

  el | Element holding a value to be extracted.

Definition at line 50 of file element_value.h.

The documentation for this class was generated from the following file:

- element_value.h