#c #c -standard-library
#c #c -standard-library
Вопрос:
Из cppreference:
iterator LegacyRandomAccessIterator
const_iterator Constant LegacyRandomAccessIterator
Он больше не должен использоваться?
Каков правильный / рекомендуемый способ получения a std::vector iterator
? Должны ли мы использовать only auto
?
Комментарии:
1. Наследие не означает то, что вы думаете, что это значит. Откуда вы взяли предположение, что это подразумевает что-то среди строк устаревания?
2. @Fureeish «Устаревший означает, что он будет удален в ближайшем будущем, а устаревший означает, что он останется для обратной совместимости или по другим причинам. Оба означают, что они не должны использоваться новым кодом. » Первый результат поиска в Google ответа SO. Этот вопрос был связан с Java.
3. В стандартах уже указано множество реализаций . Это не значит, что вы не можете безопасно использовать их в своем коде на c .
4. В этом и заключается ваше замешательство — вы читаете ответ для Java, а не для C . Речь также шла об API, а не о самом названии концепции (не обязательно
<concepts>
связанной). LegacyIterator — это имя . Я не знаю, почему он так назван, но это просто имя.5. Кстати, помимо предположения о путанице, сделанного OP, я думаю, что это хороший вопрос. Безусловно, есть причины для присвоения имен (уже упомянутые в ответе), и я думаю, вполне вероятно, что люди могут запутаться в таком присвоении имен, тем более что нет простого объяснения.
Ответ №1:
Высказывание legacy
не означает, что оно не поддерживается или устарело. Это просто означает, что он не новый, следовательно, использует термин legacy
. Legacy
префикс используется только для различения между C 20 RandomAccessIterator
и ранее существовавшими LegacyRandomAccessIterator
(оба являются «концепциями» в соответствии с C ). Я не думаю, что этот термин Legacy
действительно упоминается в стандарте.
Комментарии:
1. Термин «Устаревший» не появляется в стандарте. Это изобретение cppreference.com . Я думаю, что менее запутанным термином был бы «Классический». В классике нет ничего плохого. Но они также не современные.
2. Да, вы правы, я немного покопался, и я полагаю, что операторы сайта сделали это, чтобы разделить страницы wiki, я, возможно, ошибаюсь.