小问题也会影响设计的思路,某个问题或某种case的探讨有助于理解设计的初衷。
声明:以下_Tp/Tp都是指要放入std::any的对象的类型。
它要求_Tp is_copy_constructible, 仅仅是因为有很多函数的实现调用了Tp的拷贝构造函数吗?比如说上节提到的初始化函数:
any(_Tp&& __value) //调用_Tp copy ctor/move ctor
any(in_place_type_t<_Tp>, _Args&&... __args) //调用_Tp parameterized ctor
any(in_place_type_t<_Tp>, initializer_list<_Up> __il, _Args&&... __args) //调用_Tp parameterized ctor
operator=(_Tp&& __rhs) //先构造临时any对象(调用第一种情况),再move给*this
第一种case:如果__value是左值,则最终会调用到_Tp copy ctor:
_Manager_internal
template<typename _Up>
stat
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



