c – 是一个简单的可复制的:: std :: tuple类模板可能吗?是否存
我需要一个简单的可复制的类元组类,但没有合适的实现存在,我自己无法想出一个,我认为甚至可能不可能.它的原因是参考. A :: std :: tuple可以保存引用,但是一个简单的可复制元组可能无法,因为它可能没有非平凡的构造函数,并且必须在类元组类的构造函数中初始化引用并存储引用包装器会使类似元组的类变得非常重要.我的问题在标题中.
解决方法
使用reference_wrapper存储引用是
entirely possible:
只是有一个非平凡的非特殊构造函数(例如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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |