繁体   English   中英

std :: tuple作为类成员

[英]std::tuple as class member

如何使用std::tuple类型的成员创建对象?

我试着编译这段代码。

  6 template <class ... T>
  7 class Iterator
  8 {
  9 public:
 10         Iterator(T ... args)
 11                 : tuple_(std::make_tuple(args))
 12         {
 13         }
 14 
 15 private:
 16         std::tuple<T ...> tuple_;
 17 };

但它无法使用以下错误进行编译。

variadic.cpp: In constructor ‘Iterator<T>::Iterator(T ...)’:
variadic.cpp:11:33: error: parameter packs not expanded with ‘...’:
variadic.cpp:11:33: note:         ‘args’

代码有什么问题?

args是可变的,所以你必须用...扩展它:

: tuple_(std::make_tuple(args...))
//                           ^^^

而你不需要make_tuple

: tuple_(args...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM