Silicium
Classes | Namespaces | Functions
optional.hpp File Reference
#include <silicium/config.hpp>
#include <silicium/is_handle.hpp>
#include <silicium/explicit_operator_bool.hpp>
#include <ostream>
#include <type_traits>
#include <boost/static_assert.hpp>
#include <boost/functional/hash.hpp>

Go to the source code of this file.

Classes

struct  Si::alignment_of< T >
 
struct  Si::none_t
 
struct  Si::some_t
 
struct  Si::optional< T >
 
struct  Si::optional< T & >
 
struct  std::hash< Si::optional< T > >
 

Namespaces

 Si
 
 std
 

Functions

bool Si::operator== (none_t, none_t)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< int >>::value)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< int * >>::value)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< int const * >>::value)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< nothing >>::value)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< int & >>::value)
 
 Si::BOOST_STATIC_ASSERT (is_handle< optional< int const & >>::value)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator== (optional< T > const &left, optional< T > const &right)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator== (optional< T > const &left, T const &right)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator== (T const &left, optional< T > const &right)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator== (none_t const &, optional< T > const &right)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator== (optional< T > const &left, none_t const &)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator!= (optional< T > const &left, optional< T > const &right)
 
template<class T >
SILICIUM_USE_RESULT bool Si::operator< (optional< T > const &left, optional< T > const &right)
 
template<class T >
SILICIUM_USE_RESULT Si::optional< typename std::decay< T >::type > Si::make_optional (T &&value)
 
std::ostream & Si::operator<< (std::ostream &out, none_t const &)
 
template<class T >
std::ostream & Si::operator<< (std::ostream &out, optional< T > const &value)
 
template<class T >
SILICIUM_USE_RESULT std::size_t Si::hash_value (optional< T > const &value)
 
 Si::BOOST_STATIC_ASSERT (sizeof(optional< boost::int8_t >)==2)
 
 Si::BOOST_STATIC_ASSERT (sizeof(optional< boost::int16_t >)==4)
 
 Si::BOOST_STATIC_ASSERT (sizeof(optional< boost::uint32_t >)==(2 *sizeof(boost::uint32_t)))
 
 Si::BOOST_STATIC_ASSERT (sizeof(optional< char * >)==(alignment_of< char * >::value+sizeof(char *)))
 
 Si::BOOST_STATIC_ASSERT (sizeof(optional< boost::int8_t & >)==sizeof(boost::int8_t *))