4

Boost のバージョンに基づいていると読みましたが、実装に至ったとき、それが何を意味するのかよくわかりませんでした。Boost が独自の可変個引数テンプレートを使用することは知っていますが、c++0x は新しいタプルに独自の可変個引数テンプレートを使用すると思います。

4

1 に答える 1

6

tupleC++0x ドラフト標準のは、C++0x 可変個引数テンプレートを使用します。次のように宣言されています (§20.4.1):

template <class... Types> class tuple;

ただし、TR1 言語拡張機能にはtuple、可変個引数テンプレートを使用しない も含まれていることに注意してください。TR1 では、次のtupleように宣言されています (§6.1):

template <class T1 = unspecified ,
          class T2 = unspecified ,
          ...,
          class TM = unspecified > class tuple;

whereMは、少なくとも 10 である必要がある実装定義の値です。

TR1 は正式には C++ 言語の一部ではありませんが、最近の多くの実装でサポートされています。可変個引数テンプレートをまだサポートしていない実装がある場合は、 TR1 をサポートしている可能性がありtupleます。

最新のドラフト規格である最終委員会ドラフト(10.5 MB PDF リンク) をダウンロードできます。

于 2010-08-17T13:08:50.507 に答える