-
-
如果您不打算存储它的副本,请传递值或
const&
-
如果你想储存一份复印件,而且搬家很便宜,复印也有点贵,那就过去吧。
.
-
std::move
.
-
The Rule of 0/3/5
=default
除了资源管理类型。如果你想实现
复制/移动/销毁,需要实现,
或
=delete
如果对setter只接受1个参数,请考虑将
&&
施工
安置方式如下:
struct emplace_tag {};
struct wrap_foo {
template<class...Ts>
wrap_foo(emplace_tag, Ts&&...ts):
foo( std::forward<Ts>(ts)... )
{}
template<class T0, class...Ts>
wrap_foo(emplace_tag, std::initializer_list<T0> il, Ts&&...ts):
foo( il, std::forward<Ts>(ts)... )
{}
private:
Foo foo;
};
emplace_back
或
emplace
::new
operator T()