簡體   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