datastructures¶
#include <compatibility/hpx/util/any.hpp>¶
#include <compatibility/hpx/util/optional.hpp>¶
#include <compatibility/hpx/util/tuple.hpp>¶
#include <compatibility/hpx/traits/supports_streaming_with_any.hpp>¶
#include <compatibility/hpx/traits/is_tuple_like.hpp>¶
#include <hpx/datastructures/any.hpp>¶
-
template <>
template<>
classbasic_any<void, void, void, std::true_type>¶ Public Functions
-
basic_any()¶
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_copy_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
~basic_any()¶
-
basic_any &
operator=(basic_any const &x)¶
-
basic_any &
operator=(basic_any &&rhs)¶
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_copy_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)¶
-
basic_any &
swap(basic_any &x)¶
-
template <typename T>
T const &cast() const¶
-
bool
has_value() const¶
-
void
reset()¶
-
bool
equal_to(basic_any const &rhs) const¶
Private Functions
-
basic_any &
assign(basic_any const &x)¶
-
-
template <typename Char>
template<>
classbasic_any<void, void, Char, std::true_type>¶ Public Functions
-
basic_any()
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_copy_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
~basic_any()
-
basic_any &
operator=(basic_any const &x)
-
basic_any &
operator=(basic_any &&rhs)¶
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_copy_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)¶
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
Private Functions
-
basic_any &
assign(basic_any const &x)
-
-
template <>
template<>
classbasic_any<void, void, void, std::false_type>¶ Public Functions
-
basic_any()
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_move_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
basic_any &
operator=(basic_any const &x)
-
~basic_any()
-
basic_any &
operator=(basic_any &&rhs)¶
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_move_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)¶
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
-
-
template <typename Char>
template<>
classbasic_any<void, void, Char, std::false_type>¶ Public Functions
-
basic_any()
-
basic_any(basic_any &&x)
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_move_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
basic_any(basic_any const &x)
-
basic_any &
operator=(basic_any const &x)
-
~basic_any()
-
basic_any &
operator=(basic_any &&rhs)
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_move_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
-
-
namespace
hpx -
namespace
util Typedefs
-
using
hpx::util::any_nonser = typedef basic_any<void, void, void, std::true_type>
-
using
hpx::util::streamable_any_nonser = typedef basic_any<void, void, char, std::true_type>
-
using
hpx::util::streamable_wany_nonser = typedef basic_any<void, void, wchar_t, std::true_type>
-
using
hpx::util::unique_any_nonser = typedef basic_any<void, void, void, std::false_type>
-
using
hpx::util::streamable_unique_any_nonser = typedef basic_any<void, void, char, std::false_type>
-
using
hpx::util::streamable_unique_wany_nonser = typedef basic_any<void, void, wchar_t, std::false_type>
Functions
-
template <typename IArch, typename OArch, typename Char, typename Copyable, typename Enable = typename std::enable_if<!std::is_void<Char>::value>::type>
std::basic_istream<Char> &operator>>(std::basic_istream<Char> &i, basic_any<IArch, OArch, Char, Copyable> &obj)¶
-
template <typename IArch, typename OArch, typename Char, typename Copyable, typename Enable = typename std::enable_if<!std::is_void<Char>::value>::type>
std::basic_ostream<Char> &operator<<(std::basic_ostream<Char> &o, basic_any<IArch, OArch, Char, Copyable> const &obj)¶
-
template <typename IArch, typename OArch, typename Char, typename Copyable>
voidswap(basic_any<IArch, OArch, Char, Copyable> &lhs, basic_any<IArch, OArch, Char, Copyable> &rhs)¶
-
template <typename T, typename IArch, typename OArch, typename Char, typename Copyable>
T *any_cast(basic_any<IArch, OArch, Char, Copyable> *operand)¶
-
template <typename T, typename IArch, typename OArch, typename Char, typename Copyable>
T const *any_cast(basic_any<IArch, OArch, Char, Copyable> const *operand)
-
template <typename T, typename IArch, typename OArch, typename Char, typename Copyable>
Tany_cast(basic_any<IArch, OArch, Char, Copyable> &operand)¶
-
template <typename T, typename IArch, typename OArch, typename Char, typename Copyable>
T const &any_cast(basic_any<IArch, OArch, Char, Copyable> const &operand)¶
-
template <typename Char>
template<>
classbasic_any<void, void, Char, std::false_type> Public Functions
-
basic_any()
-
basic_any(basic_any &&x)
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_move_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
basic_any(basic_any const &x)
-
basic_any &
operator=(basic_any const &x)
-
~basic_any()
-
basic_any &
operator=(basic_any &&rhs)
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_move_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
-
-
template <typename Char>
template<>
classbasic_any<void, void, Char, std::true_type> Public Functions
-
basic_any()
-
basic_any(basic_any const &x)
-
basic_any(basic_any &&x)
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_copy_constructible<typename std::decay<T>::type>::value>::type * = nullptr)¶
-
~basic_any()
-
basic_any &
operator=(basic_any const &x)
-
basic_any &
operator=(basic_any &&rhs)
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_copy_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
Private Functions
-
basic_any &
assign(basic_any const &x)
-
-
template <>
template<>
classbasic_any<void, void, void, std::false_type> Public Functions
-
basic_any()
-
basic_any(basic_any &&x)
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_move_constructible<typename std::decay<T>::type>::value>::type * = nullptr)
-
basic_any(basic_any const &x)
-
basic_any &
operator=(basic_any const &x)
-
~basic_any()
-
basic_any &
operator=(basic_any &&rhs)
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_move_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
-
-
template <>
template<>
classbasic_any<void, void, void, std::true_type> Public Functions
-
basic_any()
-
basic_any(basic_any const &x)
-
basic_any(basic_any &&x)
-
template <typename T, typename Enable = typename std::enable_if<!std::is_same<basic_any, typename std::decay<T>::type>::value>::type>
basic_any(T &&x, typename std::enable_if<std::is_copy_constructible<typename std::decay<T>::type>::value>::type * = nullptr)
-
~basic_any()
-
basic_any &
operator=(basic_any const &x)
-
basic_any &
operator=(basic_any &&rhs)
-
template <typename T, typename Enable = typename std::enable_if< !std::is_same<basic_any, typename std::decay<T>::type>::value && std::is_copy_constructible< typename std::decay<T>::type>::value>::type>
basic_any &operator=(T &&rhs)
-
basic_any &
swap(basic_any &x)
-
std::type_info const &
type() const
-
template <typename T>
T const &cast() const
-
bool
has_value() const
-
void
reset()
-
bool
equal_to(basic_any const &rhs) const
Private Functions
-
basic_any &
assign(basic_any const &x)
-
-
using
-
namespace
#include <hpx/datastructures/optional.hpp>¶
-
namespace
hpx -
namespace
util Functions
-
template <typename T>
booloperator==(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator!=(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator<(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator>=(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator>(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator<=(optional<T> const &lhs, optional<T> const &rhs)¶
-
template <typename T>
booloperator==(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator==(T const &value, optional<T> const &opt)¶
-
template <typename T>
booloperator!=(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator!=(T const &value, optional<T> const &opt)¶
-
template <typename T>
booloperator<(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator<(T const &value, optional<T> const &opt)¶
-
template <typename T>
booloperator>=(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator>=(T const &value, optional<T> const &opt)¶
-
template <typename T>
booloperator>(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator>(T const &value, optional<T> const &opt)¶
-
template <typename T>
booloperator<=(optional<T> const &opt, T const &value)¶
-
template <typename T>
booloperator<=(T const &value, optional<T> const &opt)¶
-
template <typename T>
voidswap(optional<T> &x, optional<T> &y)¶
-
template <typename T, typename... Ts>
optional<T>make_optional(Ts&&... ts)¶
-
class
bad_optional_access: public logic_error¶
-
struct
nullopt_t¶
-
template <typename T>
classoptional¶ Public Types
-
template<>
usingvalue_type= T¶
Public Functions
-
optional()¶
-
optional(T const &val)¶
-
optional(T &&val)¶
-
template <typename... Ts>
optional(in_place_t, Ts&&... ts)¶
-
~optional()¶
-
T const *
operator->() const¶
-
T *
operator->()¶
-
T const &
operator*() const¶
-
T &
operator*()¶
-
operator bool() const¶
-
bool
has_value() const¶
-
T &
value()¶
-
T const &
value() const¶
- template <typename U>
-
HPX_CXX14_CONSTEXPR T hpx::util::optional::value_or(U && value) const
-
template <typename... Ts>
voidemplace(Ts&&... ts)¶
-
void
reset()¶
-
template<>
-
template <typename T>
-
namespace
#include <hpx/datastructures/tuple.hpp>¶
-
template <typename T0, typename T1>
template<>
structtuple_element<0, std::pair<T0, T1>>¶ Public Types
-
template<>
usingtype= T0¶
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::pair< T0, T1 > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::pair< T0, T1 > const & tuple)
-
template<>
-
template <typename T0, typename T1>
template<>
structtuple_element<1, std::pair<T0, T1>>¶ Public Types
-
template<>
usingtype= T1¶
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::pair< T0, T1 > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::pair< T0, T1 > const & tuple)
-
template<>
-
template <std::size_t I, typename Type, std::size_t Size>
template<>
structtuple_element<I, boost::array<Type, Size>>¶ Public Types
-
template<>
usingtype= Type¶
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(boost::array< Type, Size > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(boost::array< Type, Size > const & tuple)
-
template<>
-
template <std::size_t I, typename Type, std::size_t Size>
template<>
structtuple_element<I, std::array<Type, Size>>¶ Public Types
-
template<>
usingtype= Type¶
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::array< Type, Size > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::array< Type, Size > const & tuple)
-
template<>
-
namespace
hpx -
namespace
util Functions
- template <typename… Ts>
-
HPX_HOST_DEVICE tuple<typename decay_unwrap<Ts>::type...> hpx::util::make_tuple(Ts &&... vs)
- template <typename… Ts>
-
HPX_HOST_DEVICE tuple<Ts&&...> hpx::util::forward_as_tuple(Ts &&... vs)
- template <typename… Ts>
-
HPX_HOST_DEVICE tuple<Ts&...> hpx::util::tie(Ts &... vs)
- template <typename… Tuples>
-
HPX_HOST_DEVICE auto hpx::util::tuple_cat(Tuples &&... tuples)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator==(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator!=(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator<(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator>(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator<=(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts, typename… Us>
-
HPX_HOST_DEVICE std::enable_if<sizeof...(Ts) == sizeof...(Us), bool>::type hpx::util::operator>=(tuple < Ts... > const & t, tuple < Us... > const & u)
- template <typename… Ts>
-
HPX_HOST_DEVICE void hpx::util::swap(tuple < Ts... > & x, tuple < Ts... > & y)
Variables
-
detail::ignore_type const
ignore= {}¶
-
template <typename... Ts>
classtuple¶ Public Functions
-
template <typename Dependent = void, typename Enable = typename std::enable_if< hpx::util::detail::all_of<std::is_constructible<Ts>...>::value, Dependent>::type>
HPX_HOST_DEVICEtuple()¶
-
HPX_HOST_DEVICE
tuple(Ts const&... vs)¶
-
template <typename U, typename... Us, typename Enable = typename std::enable_if< detail::pack<U, Us...>::size == detail::pack<Ts...>::size && std::conditional<detail::pack<Us...>::size == 0, typename std::enable_if< !std::is_same<tuple, typename std::decay<U>::type>::value && !detail::are_tuples_compatible_not_same<tuple, U&&>::value, detail::are_tuples_compatible<tuple, tuple<U>&&>>::type, detail::are_tuples_compatible<tuple, tuple<U, Us...>&&>>::type::value>::type>
HPX_HOST_DEVICEtuple(U &&v, Us&&... vs)¶
-
template <typename UTuple, typename Enable = typename std::enable_if<detail::are_tuples_compatible_not_same< tuple, UTuple&&>::value>::type>
HPX_HOST_DEVICEtuple(UTuple &&other)¶
-
HPX_HOST_DEVICE tuple& hpx::util::tuple::operator=(tuple const & other)
-
HPX_HOST_DEVICE tuple& hpx::util::tuple::operator=(tuple && other)
- template <typename UTuple>
-
HPX_HOST_DEVICE std::enable_if< tuple_size<typename std::decay<UTuple>::type>::value == detail::pack<Ts...>::size, tuple&>::type hpx::util::tuple::operator=(UTuple && other)
-
HPX_HOST_DEVICE void hpx::util::tuple::swap(tuple & other)
Public Members
-
detail::tuple_impl<typename detail::make_index_pack<sizeof...(Ts)>::type, Ts...>
_impl¶
-
template <typename Dependent = void, typename Enable = typename std::enable_if< hpx::util::detail::all_of<std::is_constructible<Ts>...>::value, Dependent>::type>
-
template <>
template<>
classtuple<>¶
-
template <typename T0, typename T1>
template<>
structtuple_element<0, std::pair<T0, T1>> Public Types
-
template<>
usingtype= T0
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::pair< T0, T1 > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::pair< T0, T1 > const & tuple)
-
template<>
-
template <typename T0, typename T1>
template<>
structtuple_element<1, std::pair<T0, T1>> Public Types
-
template<>
usingtype= T1
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::pair< T0, T1 > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::pair< T0, T1 > const & tuple)
-
template<>
-
template <std::size_t I, typename Type, std::size_t Size>
template<>
structtuple_element<I, boost::array<Type, Size>> Public Types
-
template<>
usingtype= Type
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(boost::array< Type, Size > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(boost::array< Type, Size > const & tuple)
-
template<>
-
template <std::size_t I, typename Type, std::size_t Size>
template<>
structtuple_element<I, std::array<Type, Size>> Public Types
-
template<>
usingtype= Type
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(std::array< Type, Size > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(std::array< Type, Size > const & tuple)
-
template<>
-
template <std::size_t I, typename... Ts>
template<>
structtuple_element<I, tuple<Ts...>>¶ Public Types
-
template<>
usingtype= typename detail::at_index::type¶
Public Static Functions
-
static HPX_HOST_DEVICE type& hpx::util::tuple_element::get(tuple < Ts... > & tuple)
-
static HPX_HOST_DEVICE type const& hpx::util::tuple_element::get(tuple < Ts... > const & tuple)
-
template<>
-
template <class T>
structtuple_size¶ Subclassed by hpx::util::tuple_size< const T >, hpx::util::tuple_size< const volatile T >, hpx::util::tuple_size< volatile T >
-
namespace
adl_barrier¶ Functions
- template <std::size_t I, typename Tuple>
-
HPX_HOST_DEVICE tuple_element< I, Tuple >::type & hpx::util::adl_barrier::get(Tuple & t)
- template <std::size_t I, typename Tuple>
-
HPX_HOST_DEVICE tuple_element< I, Tuple >::type const & hpx::util::adl_barrier::get(Tuple const & t)
- template <std::size_t I, typename Tuple>
-
HPX_HOST_DEVICE tuple_element< I, Tuple >::type && hpx::util::adl_barrier::get(Tuple && t)
- template <std::size_t I, typename Tuple>
-
HPX_HOST_DEVICE tuple_element< I, Tuple >::type const && hpx::util::adl_barrier::get(Tuple const && t)
-
namespace