若要檢視英文版的文章,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文
建議使用 Visual Studio 2017

scoped_allocator_adaptor::construct 方法

 

建構的物件。

template<class Ty, class... Atypes>
    void construct(Ty *ptr, Atypes&&... args);
template<class Ty1, class Ty2, class... Atypes1, class... Atypes2>
    void construct(pair<Ty1, Ty2> *ptr, piecewise_construct_t,
        tuple<Atypes1&&...> first, tuple<Atypes1&&...> second);
template<class Ty1, class Ty2>
    void construct(pair<Ty1, Ty2> *ptr);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr,
        class Uy1&& first, class Uy2&& second);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr, const pair<Uy1, Uy2>& right);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr, pair<Uy1, Uy2>&& right);

ptr

是要建構物件的記憶體位置指標。

args

引數清單。

first

配對中第一種類型的物件。

second

配對中第二個類型的物件。

right

若要移動或複製現有的物件。

第一種方法建構的物件在 ptr 藉由呼叫 Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...), ,其中 xargs... 是下列其中之一。

  • 如果 uses_allocator<Ty, inner_allocator_type> 保留為 false,然後 xargs...args...

  • 如果 uses_allocator<Ty, inner_allocator_type> 道理,和 is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> 保存為 true,然後 xargs...allocator_arg, inner_allocator(), args...

  • 如果 uses_allocator<Ty, inner_allocator_type> 道理,和 is_constructible<Ty, args..., inner_allocator()> 保存為 true,然後 xargs...args..., inner_allocator()

第二種方法建構的 pair 物件,在 ptr 藉由呼叫 Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), ,其中 xargs...first... 如同上述清單中,修改和 Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...), ,其中 xargs...second... 修改如上述清單中所示。

第三個方法的行為與相同 this->construct(ptr, piecewise_construct, tuple<>, tuple<>)

第四個方法的行為與相同 this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second))

第五個方法的行為與相同 this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second))

第六個方法的行為與相同 this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second))

需求

標頭︰ < scoped_allocator >

命名空間: std

顯示: