在线文档教程
C++
应用 | Utilities

std::any::emplace

STD::任何:

template< class ValueType, class... Args > std::decay_t& emplace( Args&&... args (1)(since C++17)
template< class ValueType, class U, class... Args > std::decay_t<ValueType>& emplace( std::initializer_list<U> il, Args&&... args (2)(since C++17)

将包含的对象更改为std::decay_t<ValueType>从争论中构建的。

首先销毁当前包含的对象%28(如果有%29)reset(),然后:

1%29构造一个类型的对象。std::decay_t<ValueType>,,,直接-非列表-初始化从std::forward<Args>(args)...,作为包含的对象。此重载只参与在下列情况下的重载解决方案:std::is_constructible_v<std::decay_t<ValueType>, Args...>和std::is_copy_constructible_v<std::decay_t<ValueType>>都是true...

2%29构造一个类型的对象。std::decay_t<ValueType>,,,直接-非列表-初始化从il,std::forward<Args>(args)...,作为包含的对象。此重载只参与在下列情况下的重载解决方案:std::is_constructible_v<std::decay_t<ValueType>,std::initializer_list<U>&, Args...>和std::is_copy_constructible_v<std::decay_t<ValueType>>都是true...

模板参数

ValueType-contained value type

类型要求

-性病::腐烂[医]T型<ValueType>必须符合CopyConstrucable的要求。

返回值

对新包含的对象的引用。

例外

抛出任何异常。T%27s构造函数。如果引发异常,则先前包含的对象%28(如果有%29已被销毁)和*this不包含值。

另见

(constructor)constructs an any object (public member function)
resetdestroys contained object (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/实用程序/any/emplace