Silicium
Classes | Functions
Si::detail Namespace Reference

Classes

struct  actual_value_type
 
struct  are_copyable
 
struct  are_copyable< First, T... >
 
struct  are_copyable<>
 
struct  are_noexcept_movable
 
struct  are_noexcept_movable< First, T... >
 
struct  are_noexcept_movable<>
 
struct  category
 
struct  combined_storage
 
struct  construction_visitor
 
struct  first
 
struct  first< First, Rest... >
 
struct  index_of
 
struct  make_mpl_vector
 
struct  make_mpl_vector< Head, Tail... >
 
struct  make_mpl_vector<>
 
struct  non_assignable
 
struct  non_copyable
 
struct  ostream_visitor
 
struct  overloader
 
struct  overloader< Result, Head >
 
struct  overloader< Result, Head, Tail... >
 
struct  select_variant_base
 
struct  then_impl
 
struct  then_impl< void >
 
struct  union_
 
struct  union_< First, T... >
 
struct  union_<>
 
struct  variant_base
 
struct  variant_base< false, T... >
 
struct  variant_base< true, T... >
 

Functions

template<class To , class From >
From && convert_if_necessary (From &&from, std::true_type)
 
template<class To , class From >
To convert_if_necessary (From &&from, std::false_type)
 
template<class T >
std::remove_reference< T >::type && move_if (boost::mpl::true_, T &&ref)
 
template<class T >
T & move_if (boost::mpl::false_, T &&ref)
 
template<class T , class U >
exchange_impl (T &dest, U &&source, std::true_type)
 
template<class T , class U >
exchange_impl (T &dest, U &&source, std::false_type)
 
 BOOST_STATIC_ASSERT (!is_handle< non_copyable >::value)
 
 BOOST_STATIC_ASSERT (!Si::is_move_assignable< non_assignable >::value)
 
 BOOST_STATIC_ASSERT (!Si::is_copy_assignable< non_assignable >::value)
 
 BOOST_STATIC_ASSERT (!is_handle< non_assignable >::value)
 
template<class T >
void default_construct (std::true_type)
 
template<class T >
default_construct (std::false_type)
 
template<class T >
void destroy_storage (void *storage) BOOST_NOEXCEPT
 
template<class T >
void move_construct_storage (void *destination, void *source) BOOST_NOEXCEPT
 
template<class T >
void copy_construct_storage (void *destination, void const *source)
 
template<class T >
void move_storage (void *destination, void *source) BOOST_NOEXCEPT
 
template<class T >
void copy_storage (void *destination, void const *source)
 
template<class T >
bool equals (void const *left, void const *right)
 
template<class T >
bool less (void const *left, void const *right)
 
template<class Visitor , class T , class Result >
Result apply_visitor_impl (Visitor &&visitor, void *element)
 
template<class Visitor , class T , class Result >
Result apply_visitor_const_impl (Visitor &&visitor, void const *element)
 
 BOOST_STATIC_ASSERT (are_copyable<>::value)
 
 BOOST_STATIC_ASSERT (are_copyable< int >::value)
 
 BOOST_STATIC_ASSERT ((are_copyable< int, float >::value))
 
template<bool IsCopyable, class... T>
std::ostream & operator<< (std::ostream &out, variant_base< IsCopyable, T... > const &v)
 

Function Documentation

template<class Visitor , class T , class Result >
Result Si::detail::apply_visitor_const_impl ( Visitor &&  visitor,
void const *  element 
)
template<class Visitor , class T , class Result >
Result Si::detail::apply_visitor_impl ( Visitor &&  visitor,
void *  element 
)
Si::detail::BOOST_STATIC_ASSERT ( !is_handle< non_copyable >::value  )
Si::detail::BOOST_STATIC_ASSERT ( !Si::is_move_assignable< non_assignable >::value  )
Si::detail::BOOST_STATIC_ASSERT ( !Si::is_copy_assignable< non_assignable >::value  )
Si::detail::BOOST_STATIC_ASSERT ( !is_handle< non_assignable >::value  )
Si::detail::BOOST_STATIC_ASSERT ( are_copyable<>::value  )
Si::detail::BOOST_STATIC_ASSERT ( are_copyable< int >::value  )
Si::detail::BOOST_STATIC_ASSERT ( (are_copyable< int, float >::value)  )
template<class To , class From >
From&& Si::detail::convert_if_necessary ( From &&  from,
std::true_type   
)
template<class To , class From >
To Si::detail::convert_if_necessary ( From &&  from,
std::false_type   
)
template<class T >
void Si::detail::copy_construct_storage ( void *  destination,
void const *  source 
)
template<class T >
void Si::detail::copy_storage ( void *  destination,
void const *  source 
)
template<class T >
void Si::detail::default_construct ( std::true_type  )
template<class T >
T Si::detail::default_construct ( std::false_type  )
template<class T >
void Si::detail::destroy_storage ( void *  storage)
template<class T >
bool Si::detail::equals ( void const *  left,
void const *  right 
)
template<class T , class U >
T Si::detail::exchange_impl ( T &  dest,
U &&  source,
std::true_type   
)
template<class T , class U >
T Si::detail::exchange_impl ( T &  dest,
U &&  source,
std::false_type   
)
template<class T >
bool Si::detail::less ( void const *  left,
void const *  right 
)
template<class T >
void Si::detail::move_construct_storage ( void *  destination,
void *  source 
)
template<class T >
std::remove_reference<T>::type&& Si::detail::move_if ( boost::mpl::true_  ,
T &&  ref 
)
template<class T >
T& Si::detail::move_if ( boost::mpl::false_  ,
T &&  ref 
)
template<class T >
void Si::detail::move_storage ( void *  destination,
void *  source 
)
template<bool IsCopyable, class... T>
std::ostream& Si::detail::operator<< ( std::ostream &  out,
variant_base< IsCopyable, T... > const &  v 
)