emplace overloads

Synopses

Declared in <bslstl_variant.h>

Create a t_TYPE alternative in place from args.

template<
    class t_TYPE,
    class... t_ARGS>
requires BSLSTL_VARIANT_HAS_UNIQUE_TYPE(t_TYPE) &&
                  std::is_constructible<t_TYPE, t_ARGS...>::value
t_TYPE&
emplace(t_ARGS&&... args);

Create the t_INDEX alternative in place from args.

template<
    std::size_t t_INDEX,
    class... t_ARGS>
requires (t_INDEX < 1 + sizeof...(t_TAIL)) &&
                  std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
                                        t_ARGS...>::value
variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...>>::type&
emplace(t_ARGS&&... args);

Create a t_TYPE alternative in place from il and args.

template<
    class t_TYPE,
    class INIT_LIST_TYPE,
    class... t_ARGS>
requires BSLSTL_VARIANT_HAS_UNIQUE_TYPE(t_TYPE) &&
                  std::is_constructible<t_TYPE,
                                        std::initializer_list<INIT_LIST_TYPE>&,
                                        t_ARGS...>::value
t_TYPE&
emplace(
    std::initializer_list<INIT_LIST_TYPE> il,
    t_ARGS&&... args);

Create the t_INDEX alternative in place from il and args.

template<
    std::size_t t_INDEX,
    class INIT_LIST_TYPE,
    class... t_ARGS>
requires (t_INDEX < 1 + sizeof...(t_TAIL)) &&
                  std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
                                        std::initializer_list<INIT_LIST_TYPE>&,
                                        t_ARGS...>::value
variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...>>::type&
emplace(
    std::initializer_list<INIT_LIST_TYPE> il,
    t_ARGS&&... args);

Return Value

  • reference to the newly created t_TYPE object

  • reference to the newly created alternative object

Parameters

Name

Description

args

arguments used to construct the t_TYPE alternative

il

initializer list used to construct the t_TYPE alternative

Created with MrDocs