std::reference_wrapper
is guaranteed to be Triviallycopyable.
(since C++17)
只是有一个非平凡的非特殊构造函数(例如std :: reference_wrapper< T> :: reference_wrapper(T&))绝对没问题.所以trivially_copyable_tuple也是如此;只要它有一个简单的复制构造函数,trivially_copyable_tuple :: trivially_copyable_tuple(int&,float&,char)就可以了.
实际上,你根本不需要使用std :: reference_wrapper;虽然引用类型不是Triviallycopyable,但包含引用的类类型本身是Triviallycopyable(尽管它不是Pod,StandardLayoutType,DefaultConstructible,TriviallyDefaultConstructible或Trivial).
以下是一些例子:
> my own tuple implementation,表明不需要任何特殊技巧使其成为Triviallycopyable;
> a very slightly more involved implementation显示如果你提供重新赋值(因此需要在内部使用reference_wrapper),你仍然可以保留所有其他属性;
> a tuple with through assignability表明你失去了琐碎的可复制性,但仅限于实际包含引用类型的元组;你可以在包含标量的元组上保留琐碎的可复制性.
以上是内存溢出为你收集整理的c – 是一个简单的可复制的:: std :: tuple类模板可能吗?是否存在实施?全部内容,希望文章能够帮你解决c – 是一个简单的可复制的:: std :: tuple类模板可能吗?是否存在实施?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)