plugify 1.0.0.0
|
Public Types | |
template<std::size_t Idx> | |
using | alternative = std::remove_reference_t< decltype(std::declval< storage & >().template get< Idx >())> |
using | index_type = detail::smallest_suitable_integer_type< sizeof...(Ts)+can_be_valueless, unsigned char, unsigned short, unsigned > |
Public Member Functions | |
constexpr | variant (const variant &o) |
constexpr | variant (variant &&o) noexcept((std::is_nothrow_move_constructible_v< Ts > &&...)) |
template<class T , class M = detail::best_overload_match<T&&, Ts...>, class D = std::decay_t<T>> | |
constexpr | variant (T &&t) noexcept(std::is_nothrow_constructible_v< M, T && >) |
template<std::size_t Index, class... Args> | |
constexpr | variant (in_place_index_t< Index > tag, Args &&... args) |
template<class T , class... Args> | |
constexpr | variant (in_place_type_t< T >, Args &&... args) |
template<std::size_t Index, class U , class... Args> | |
constexpr | variant (in_place_index_t< Index > tag, std::initializer_list< U > list, Args &&... args) |
template<class T , class U , class... Args> | |
constexpr | variant (in_place_type_t< T >, std::initializer_list< U > list, Args &&... args) |
constexpr variant & | operator= (const variant &rhs) |
constexpr variant & | operator= (variant &&o) noexcept((std::is_nothrow_move_constructible_v< Ts > &&...) &&(std::is_nothrow_move_assignable_v< Ts > &&...)) |
template<class T > | |
constexpr variant & | operator= (T &&t) noexcept(std::is_nothrow_assignable_v< detail::best_overload_match< T &&, Ts... >, T && > &&std::is_nothrow_constructible_v< detail::best_overload_match< T &&, Ts... >, T && >) |
template<class T , class... Args> | |
constexpr T & | emplace (Args &&... args) |
template<std::size_t Idx, class... Args> | |
constexpr auto & | emplace (Args &&... args) |
template<std::size_t Idx, class U , class... Args> | |
constexpr auto & | emplace (std::initializer_list< U > list, Args &&... args) |
template<class T , class U , class... Args> | |
constexpr T & | emplace (std::initializer_list< U > list, Args &&... args) |
constexpr bool | valueless_by_exception () const noexcept |
constexpr index_type | index () const noexcept |
constexpr void | swap (variant &o) noexcept((std::is_nothrow_move_constructible_v< Ts > &&...) &&(detail::swap_trait::template nothrow< Ts > &&...)) |
template<detail::union_index_t Idx> | |
constexpr auto & | unsafe_get () &noexcept |
template<detail::union_index_t Idx> | |
constexpr auto && | unsafe_get () &&noexcept |
template<detail::union_index_t Idx> | |
constexpr const auto & | unsafe_get () const &noexcept |
template<detail::union_index_t Idx> | |
constexpr const auto && | unsafe_get () const &&noexcept |
Static Public Attributes | |
static constexpr bool | can_be_valueless = not is_trivial |
static constexpr unsigned | size = sizeof...(Ts) |
static constexpr index_type | npos = static_cast<index_type>(-1) |
template<class T > | |
static constexpr int | index_of = detail::find_first_true({std::is_same_v<T, Ts>...}) |
Friends | |
template<class T > | |
struct | detail::emplace_no_dtor_from_elem |
Definition at line 594 of file variant.hpp.
using plg::variant< Ts >::alternative = std::remove_reference_t<decltype(std::declval<storage&>().template get<Idx>())> |
Definition at line 610 of file variant.hpp.
using plg::variant< Ts >::index_type = detail::smallest_suitable_integer_type<sizeof...(Ts) + can_be_valueless, unsigned char, unsigned short, unsigned> |
Definition at line 616 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 626 of file variant.hpp.
|
inlineconstexpr |
Definition at line 643 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 659 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 670 of file variant.hpp.
|
inlineexplicitconstexpr |
Definition at line 683 of file variant.hpp.
|
inlineexplicitconstexpr |
Definition at line 692 of file variant.hpp.
|
inlineexplicitconstexpr |
Definition at line 704 of file variant.hpp.
|
inlineexplicitconstexpr |
Definition at line 715 of file variant.hpp.
|
inline |
Definition at line 734 of file variant.hpp.
|
inlineconstexpr |
Definition at line 837 of file variant.hpp.
|
inlineconstexpr |
Definition at line 845 of file variant.hpp.
|
inlineconstexpr |
Definition at line 855 of file variant.hpp.
|
inlineconstexpr |
Definition at line 864 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 876 of file variant.hpp.
|
inlineconstexpr |
Definition at line 749 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 807 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 784 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 882 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 952 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 945 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 966 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 959 of file variant.hpp.
|
inlineconstexprnoexcept |
Definition at line 870 of file variant.hpp.
Definition at line 1068 of file variant.hpp.
|
staticconstexpr |
Definition at line 612 of file variant.hpp.
|
staticconstexpr |
Definition at line 621 of file variant.hpp.
|
staticconstexpr |
Definition at line 618 of file variant.hpp.
|
staticconstexpr |
Definition at line 614 of file variant.hpp.