3.5.0
Freundlich's C++ toolkit
Typedefs
fcppt::metal::set Namespace Reference

Typedefs

template<typename Set , typename Key >
using contains = fcppt::type_traits::to_bool< ::metal::has_key< Set, Key > >
 
template<typename Set1 , typename Set2 >
using difference = ::metal::accumulate< ::metal::bind< ::metal::lambda< ::metal::if_ >, ::metal::bind< ::metal::bind< ::metal::lambda< fcppt::metal::to_number >, ::metal::lambda< fcppt::metal::set::contains > >, ::metal::always< Set2 >, ::metal::_2 >, ::metal::_1, ::metal::bind< ::metal::lambda< fcppt::metal::set::insert >, ::metal::_1, ::metal::_2 > >, fcppt::metal::set::make<>, fcppt::metal::set::to_list< Set1 > >
 The difference of two sets. More...
 
using empty = ::metal::map<>
 
template<typename List >
using from_list_relaxed = ::metal::accumulate< ::metal::lambda< fcppt::metal::set::insert_relaxed >, fcppt::metal::set::empty, List >
 
template<typename Set , typename Key >
using insert = ::metal::insert_key< Set, Key, fcppt::unit >
 
template<typename Set , typename Key >
using insert_relaxed = ::metal::invoke< ::metal::if_< fcppt::metal::to_number< fcppt::metal::set::contains< Set, Key > >, ::metal::always< Set >, ::metal::bind< ::metal::lambda< fcppt::metal::set::insert >, ::metal::always< Set >, ::metal::always< Key > > > >
 
template<typename Set1 , typename Set2 >
using intersection = ::metal::accumulate< ::metal::bind< ::metal::lambda< ::metal::if_ >, ::metal::bind< ::metal::bind< ::metal::lambda< fcppt::metal::to_number >, ::metal::lambda< fcppt::metal::set::contains > >, ::metal::always< Set2 >, ::metal::_2 >, ::metal::bind< ::metal::lambda< fcppt::metal::set::insert_relaxed >, ::metal::_1, ::metal::_2 >, ::metal::_1 >, fcppt::metal::set::make<>, fcppt::metal::set::to_list< Set1 > >
 The intersection of two sets. More...
 
template<typename... Types>
using make = ::metal::accumulate< ::metal::lambda< fcppt::metal::set::insert >, ::metal::map<>, ::metal::list< Types... > >
 
template<typename... Types>
using make_relaxed = fcppt::metal::set::from_list_relaxed< ::metal::list< Types... > >
 
template<typename Set >
using size = ::metal::size< Set >
 
template<typename Set1 , typename Set2 >
using symmetric_difference = fcppt::metal::set::union_< fcppt::metal::set::difference< Set1, Set2 >, fcppt::metal::set::difference< Set2, Set1 > >
 The symmetric difference of two sets. More...
 
template<typename Set >
using to_list = ::metal::keys< Set >
 
template<typename Set1 , typename Set2 >
using union_ = ::metal::accumulate< ::metal::bind< ::metal::lambda< fcppt::metal::set::insert_relaxed >, ::metal::_1, ::metal::_2 >, Set1, fcppt::metal::set::to_list< Set2 > >
 The union of two sets. More...
 

Typedef Documentation

◆ contains

template<typename Set , typename Key >
using fcppt::metal::set::contains = typedef fcppt::type_traits::to_bool< ::metal::has_key< Set, Key > >

◆ empty

using fcppt::metal::set::empty = typedef ::metal::map<>

◆ from_list_relaxed

template<typename List >
using fcppt::metal::set::from_list_relaxed = typedef ::metal::accumulate< ::metal::lambda< fcppt::metal::set::insert_relaxed >, fcppt::metal::set::empty, List >

◆ insert

template<typename Set , typename Key >
using fcppt::metal::set::insert = typedef ::metal::insert_key< Set, Key, fcppt::unit >

◆ insert_relaxed

template<typename Set , typename Key >
using fcppt::metal::set::insert_relaxed = typedef ::metal::invoke< ::metal::if_< fcppt::metal::to_number< fcppt::metal::set::contains< Set, Key > >, ::metal::always< Set >, ::metal::bind< ::metal::lambda< fcppt::metal::set::insert >, ::metal::always< Set >, ::metal::always< Key > > > >

◆ make

template<typename... Types>
using fcppt::metal::set::make = typedef ::metal::accumulate< ::metal::lambda< fcppt::metal::set::insert >, ::metal::map<>, ::metal::list< Types... > >

◆ make_relaxed

template<typename... Types>
using fcppt::metal::set::make_relaxed = typedef fcppt::metal::set::from_list_relaxed< ::metal::list< Types... > >

◆ size

template<typename Set >
using fcppt::metal::set::size = typedef ::metal::size< Set >

◆ to_list

template<typename Set >
using fcppt::metal::set::to_list = typedef ::metal::keys< Set >