Как сделать список, содержащий итераторы на этот же список? Такой код, очевидно, не компилируется:
typedef std::list<RuleIter> RuleList;
typedef RuleList::const_iterator RuleIter;
Напрямую, похоже, никак, ибо невозможно сформулировать правильный синтаксис.
Однако начиная с С++17 были переработаны (ослаблены) требования на полноту (completeness) типа элемента списка, что теперь позволяет нам поступить так
struct RuleListElement;
typedef std::list<RuleListElement> RuleList;
typedef RuleList::const_iterator RuleIter;
struct RuleListElement
{
RuleIter it;
};
Некоторые до-С++17 реализации соглашались компилировать такие объявления, но формально до С++17 на тип элемента стандартного контейнера накладывалось требование полноты.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При попытке подключить Winsvch сразу же появляется под 100+ ошибок, с чем может быть связано и как фиксить ? Была аналогичная проблема с winsock2, ее решил...