Является ли std::bitset::all() не обязательным для C 03?

#c #std

#c #std

Вопрос:

Недавно я получил сообщение об ошибке из-за того, что мое программное обеспечение не компилируется на платформе macOS, утверждая, что std::bitset<2ul>::all это будет неопределенным.

cplusplus.com говорит, что std::bitset на самом деле определено только none() и any() . cppreference.com утверждает о доступности all() . У кого-нибудь есть авторитетный источник по этому вопросу? И, может быть, веская причина, по которой два эквивалентных логических оператора ( none() == ! any() ) были включены в стандарт, но не all() ?

Ответ №1:

Я только что проверил ISO / IEC 14882: 2003. В all шаблоне класса нет элемента, bitset определенного (23.3.5).

Комментарии:

1. Просто для полноты, C 11 добавляет all .