Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
nullableset.hh File Reference
#include <cstring>
#include <memory>
#include <set>
#include <sstream>
#include <vcsn/alphabets/setalpha.hh>
#include <vcsn/core/kind.hh>
#include <vcsn/labelset/fwd.hh>
#include <vcsn/labelset/genset-labelset.hh>
#include <vcsn/labelset/labelset.hh>
#include <vcsn/labelset/oneset.hh>
#include <vcsn/misc/escape.hh>
#include <vcsn/misc/hash.hh>
#include <vcsn/misc/raise.hh>
Include dependency graph for nullableset.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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. More...
 
struct  vcsn::detail::nullable_helper< letterset< GenSet > >
 Add support for an empty word to a letterset thanks to the one() of its genset. More...
 
class  vcsn::nullableset< LabelSet >
 Implementation of labels are nullables (letter or empty). More...
 
struct  vcsn::detail::nullableset_traits< nullableset< LabelSet > >
 Conversion for nullable<LabelSet> to a nullableset: id. More...
 
struct  vcsn::detail::law_traits< nullableset< LabelSet > >
 Conversion for nullable<LabelSet> to a super wordset. More...
 
struct  vcsn::detail::join_impl< LS1, nullableset< LS2 > >
 The join with another labelset. More...
 
struct  vcsn::detail::join_impl< nullableset< LS1 >, nullableset< LS2 > >
 The join with another labelset. More...
 

Namespaces

 vcsn
 
 vcsn::detail
 

Macros

#define DEFINE(Lhs, Rhs, Res)
 

Functions

template<typename GenSet >
nullableset< letterset< GenSet > > vcsn::meet (const nullableset< letterset< GenSet >> &lhs, const nullableset< letterset< GenSet >> &rhs)
 Compute the meet with another labelset. More...
 
template<typename GenSet >
nullableset< letterset< GenSet > > vcsn::meet (const letterset< GenSet > &lhs, const nullableset< letterset< GenSet >> &rhs)
 
template<typename GenSet >
nullableset< letterset< GenSet > > vcsn::meet (const nullableset< letterset< GenSet >> &lhs, const letterset< GenSet > &rhs)
 
template<typename Lls , typename Rls >
nullableset< meet_t< Lls, Rls > > vcsn::meet (const nullableset< Lls > &lhs, const nullableset< Rls > &rhs)
 

Macro Definition Documentation

#define DEFINE (   Lhs,
  Rhs,
  Res 
)
Value:
template <typename GenSet> \
meet(const Lhs& lhs, const Rhs& rhs) \
{ \
return {intersection(lhs.genset(), rhs.genset())}; \
}
nullableset< meet_t< Lls, Rls > > meet(const nullableset< Lls > &lhs, const nullableset< Rls > &rhs)
Definition: nullableset.hh:542
std::set< T, Compare, Alloc > intersection(const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
The intersection of two sets.

Definition at line 522 of file nullableset.hh.