標準N3291を見ると、tuple
のbegin()
とend()
をサポートするリファレンスが見つかりませんでした。しかし、何年も前から私のメモを見ると、私はそれを後で調べる必要があると書き留めたようです。そしてここにいるのです。C++ 0xタプルにイテレータはありません。
現在のC++ 0x標準でtuple<...>.begin()
またはtuple<...>.end()
のトレースが見つかりませんでした。これは正しいですか?その反復子を持つタプルをアルゴリズムに渡すことはできませんし、どちらも反復することはできません。 auto
何をする必要がありますので、もちろんナンセンスである
tuple<int,string,double> val;
for(auto a : val) cerr << val; // very wrong!
?
私のメモにエラーがあり、タプル要素のイテレータを取得する方法がないという確認が必要です。あるいは、標準の議論に放棄された道があったのでしょうか?
注:私は実装するTMPまたは可変個引数テンプレートを使用することができます1つを認識していため、すべての要素の - タプルんが、私の質問は、イテレータについて実際にあります。
0から ':: tuple_size'までのインデックスを持ち、' std :: get 'を介して要素にアクセスするのはなぜですか? – osgx
@osgx:テンプレートパラメータはコンパイル時定数でなければなりません! –
この質問とその回答を確認してくださいhttp://stackoverflow.com/q/1198260/196561 – osgx