Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn::detail::nullable_helper< LabelSet > Struct Template Reference

Add support for an empty word to a LabelSet that does not provide such special label to this end. More...

#include <nullableset.hh>

Collaboration diagram for vcsn::detail::nullable_helper< LabelSet >:

Public Types

using labelset_t = LabelSet
 
using null = nullableset< labelset_t >
 
using value_t = std::pair< typename labelset_t::value_t, bool >
 
using kind_t = typename LabelSet::kind_t
 

Static Public Member Functions

static null make (std::istream &is)
 
static ATTRIBUTE_PURE
constexpr value_t 
one ()
 
static ATTRIBUTE_PURE
constexpr value_t 
special ()
 
template<typename Ls >
static ATTRIBUTE_PURE
std::enable_if< Ls::has_one(),
bool >::type 
is_one_ (value_t l)
 
template<typename Ls >
static ATTRIBUTE_PURE
std::enable_if<!Ls::has_one(),
bool >::type 
is_one_ (value_t l)
 
static ATTRIBUTE_PURE bool is_one (value_t l)
 
template<typename... Args>
static value_t value (const labelset_t &ls, Args &&...args)
 
static ATTRIBUTE_PURE
labelset_t::value_t 
get_value (const value_t &v)
 

Detailed Description

template<typename LabelSet>
struct vcsn::detail::nullable_helper< LabelSet >

Add support for an empty word to a LabelSet that does not provide such special label to this end.

Definition at line 26 of file nullableset.hh.

Member Typedef Documentation

template<typename LabelSet >
using vcsn::detail::nullable_helper< LabelSet >::kind_t = typename LabelSet::kind_t

Definition at line 31 of file nullableset.hh.

template<typename LabelSet >
using vcsn::detail::nullable_helper< LabelSet >::labelset_t = LabelSet

Definition at line 28 of file nullableset.hh.

template<typename LabelSet >
using vcsn::detail::nullable_helper< LabelSet >::null = nullableset<labelset_t>

Definition at line 29 of file nullableset.hh.

template<typename LabelSet >
using vcsn::detail::nullable_helper< LabelSet >::value_t = std::pair<typename labelset_t::value_t, bool>

Definition at line 30 of file nullableset.hh.

Member Function Documentation

template<typename LabelSet >
static ATTRIBUTE_PURE labelset_t::value_t vcsn::detail::nullable_helper< LabelSet >::get_value ( const value_t v)
inlinestatic
template<typename LabelSet >
static ATTRIBUTE_PURE bool vcsn::detail::nullable_helper< LabelSet >::is_one ( value_t  l)
inlinestatic
template<typename LabelSet >
template<typename Ls >
static ATTRIBUTE_PURE std::enable_if<Ls::has_one(), bool>::type vcsn::detail::nullable_helper< LabelSet >::is_one_ ( value_t  l)
inlinestatic

Definition at line 62 of file nullableset.hh.

References vcsn::detail::nullable_helper< LabelSet >::get_value().

Here is the call graph for this function:

template<typename LabelSet >
template<typename Ls >
static ATTRIBUTE_PURE std::enable_if<!Ls::has_one(), bool>::type vcsn::detail::nullable_helper< LabelSet >::is_one_ ( value_t  l)
inlinestatic

Definition at line 70 of file nullableset.hh.

template<typename LabelSet >
static null vcsn::detail::nullable_helper< LabelSet >::make ( std::istream &  is)
inlinestatic

Definition at line 33 of file nullableset.hh.

References vcsn::eat(), and vcsn::nullableset< LabelSet >::make_nullableset_kind().

Referenced by vcsn::nullableset< LabelSet >::make().

Here is the call graph for this function:

template<typename LabelSet >
static ATTRIBUTE_PURE constexpr value_t vcsn::detail::nullable_helper< LabelSet >::one ( )
inlinestatic
template<typename LabelSet >
static ATTRIBUTE_PURE constexpr value_t vcsn::detail::nullable_helper< LabelSet >::special ( )
inlinestatic

Definition at line 54 of file nullableset.hh.

Referenced by vcsn::nullableset< LabelSet >::special().

template<typename LabelSet >
template<typename... Args>
static value_t vcsn::detail::nullable_helper< LabelSet >::value ( const labelset_t ls,
Args &&...  args 
)
inlinestatic

Definition at line 84 of file nullableset.hh.

Referenced by vcsn::nullableset< LabelSet >::value().


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