Kea 2.7.5
isc::netconf::NetconfParser::value_type Class Reference

A buffer to store and retrieve objects. More...

#include <netconf_parser.h>

Public Types

typedef value_type self_type
 Type of *this.
 

Public Member Functions

 value_type () YY_NOEXCEPT
 Empty construction.
 
template<typename T >
 value_type (YY_RVREF(T) t)
 Construct and fill.
 
 ~value_type () YY_NOEXCEPT
 Destruction, allowed only if empty.
 
template<typename T >
const T & as () const YY_NOEXCEPT
 Const accessor to a built T (for printer).
 
template<typename T >
T & as () YY_NOEXCEPT
 Accessor to a built T.
 
template<typename T >
T & build ()
 Instantiate an empty T in here.
 
template<typename T >
T & build (const T &t)
 Instantiate a T in here from t.
 
template<typename T >
void copy (const self_type &that)
 Copy the content of that to this.
 
template<typename T >
void destroy ()
 Destroy the stored T.
 
template<typename T >
T & emplace ()
 Instantiate an empty T in here.
 
template<typename T >
T & emplace (const T &t)
 Instantiate a T in here from t.
 
template<typename T >
void move (self_type &that)
 Move the content of that to this.
 
template<typename T >
void swap (self_type &that) YY_NOEXCEPT
 Swap the content with that, of same type.
 

Detailed Description

A buffer to store and retrieve objects.

Sort of a variant, but does not keep track of the nature of the stored data, since that knowledge is available via the current parser state.

Definition at line 231 of file netconf_parser.h.

Member Typedef Documentation

◆ self_type

Type of *this.

Definition at line 235 of file netconf_parser.h.

Constructor & Destructor Documentation

◆ value_type() [1/2]

isc::netconf::NetconfParser::value_type::value_type ( )
inline

Empty construction.

Definition at line 238 of file netconf_parser.h.

◆ value_type() [2/2]

template<typename T >
isc::netconf::NetconfParser::value_type::value_type ( YY_RVREF(T) t)
inline

Construct and fill.

Definition at line 245 of file netconf_parser.h.

References NETCONF__ASSERT, and YY_MOVE.

◆ ~value_type()

isc::netconf::NetconfParser::value_type::~value_type ( )
inline

Destruction, allowed only if empty.

Definition at line 260 of file netconf_parser.h.

References NETCONF__ASSERT.

Member Function Documentation

◆ as() [1/2]

template<typename T >
const T & isc::netconf::NetconfParser::value_type::as ( ) const
inline

Const accessor to a built T (for printer).

Definition at line 332 of file netconf_parser.h.

References NETCONF__ASSERT.

◆ as() [2/2]

template<typename T >
T & isc::netconf::NetconfParser::value_type::as ( )
inline

Accessor to a built T.

Definition at line 321 of file netconf_parser.h.

References NETCONF__ASSERT.

◆ build() [1/2]

template<typename T >
T & isc::netconf::NetconfParser::value_type::build ( )
inline

Instantiate an empty T in here.

Obsolete, use emplace.

Definition at line 304 of file netconf_parser.h.

◆ build() [2/2]

template<typename T >
T & isc::netconf::NetconfParser::value_type::build ( const T & t)
inline

Instantiate a T in here from t.

Obsolete, use emplace.

Definition at line 313 of file netconf_parser.h.

◆ copy()

template<typename T >
void isc::netconf::NetconfParser::value_type::copy ( const self_type & that)
inline

Copy the content of that to this.

Definition at line 387 of file netconf_parser.h.

Referenced by isc::netconf::NetconfParser::basic_symbol< Base >::basic_symbol().

◆ destroy()

template<typename T >
void isc::netconf::NetconfParser::value_type::destroy ( )
inline

Destroy the stored T.

Definition at line 395 of file netconf_parser.h.

◆ emplace() [1/2]

template<typename T >
T & isc::netconf::NetconfParser::value_type::emplace ( )
inline

Instantiate an empty T in here.

Definition at line 280 of file netconf_parser.h.

References NETCONF__ASSERT.

◆ emplace() [2/2]

template<typename T >
T & isc::netconf::NetconfParser::value_type::emplace ( const T & t)
inline

Instantiate a T in here from t.

Definition at line 291 of file netconf_parser.h.

References NETCONF__ASSERT.

◆ move()

template<typename T >
void isc::netconf::NetconfParser::value_type::move ( self_type & that)
inline

Move the content of that to this.

Destroys that.

Definition at line 362 of file netconf_parser.h.

◆ swap()

template<typename T >
void isc::netconf::NetconfParser::value_type::swap ( self_type & that)
inline

Swap the content with that, of same type.

Both variants must be built beforehand, because swapping the actual data requires reading it (with as()), and this is not possible on unconstructed variants: it would require some dynamic testing, which should not be the variant's responsibility. Swapping between built and (possibly) non-built is done with self_type::move ().

Definition at line 350 of file netconf_parser.h.

References NETCONF__ASSERT.

Member Data Documentation

◆ yyalign_me_

long double isc::netconf::NetconfParser::value_type::yyalign_me_

Strongest alignment constraints.

Definition at line 455 of file netconf_parser.h.

◆ yyraw_

char isc::netconf::NetconfParser::value_type::yyraw_[size]

A buffer large enough to store any of the semantic values.

Definition at line 457 of file netconf_parser.h.


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