Глядя на стандарт N3291, я не нахожу никаких ссылок на tuple
для поддержки begin()
и end()
.Но когда я смотрю на свои записи, сделанные много лет назад, я, кажется, записал, что мне нужно изучить это позже.И вот мы здесь.
Я не могу найти никаких следов tuple<...>.begin()
или tuple<...>.end()
в текущем стандарте C ++ 0x, это правильно?Невозможно передать кортеж с его итераторами в алгоритм, равно как и один for
-попад по нему, верно?
tuple<int,string,double> val;
for(auto a : val) cerr << val; // very wrong!
, что, конечно, глупость, потому что то, что должно быть auto
?
Мне нужно подтверждение, что мои заметки содержат ошибку, и что нет способа получить эти итераторы для элементов кортежа.Или, может быть, в обсуждении стандартов был заброшенный путь?
Примечание: я знаю, что можно использовать TMP или шаблонов Variadic для реализации do-for-all-elements-of-a-tuple , но мой вопрос действительно об итераторах.