Search
Write a publication
Pull to refresh

Comments 2

следующий простой концепт Incrementable требует, чтобы объект поддерживал операцию инкремента

Всё, что он требует, это чтобы выражение ++t; было валидным. То, что это именно инкремент в обычном понимании он потребовать не может.

requires(T a) является общим определением

Не является, такой же синтаксис как и для параметров функций для того и сделан чтобы можно было дописывать *, &, ведь иначе невозможно это всё навесить в выражение слева от стрелки, синтаксис которой, к слову, и делает код более понятным и читаемым по сравнению с enable_if<is_something<decltype(declval

template<typename T>
concept EquationArray = requires(T &a)
{
    { *std::begin(a) } -> std::same_as<Equation &>;
    { std::begin(a) } -> std::forward_iterator;
    { std::end(a) } -> std::forward_iterator;
};

В отличие от enable_if, концепты дают ясное и легко читаемое описание

Не, ну, для прожжённого плюсовика IsEquation<std::iter_value_t<decltype(std::begin(std::declval<T&>()))>>; , может, и ясное и легко читаемое, но для него и enable_if требуемой для обозначенной задачи сложности тоже будет ясным и легко читаемым.

Рассмотрим сообщения об ошибках компилятора

Давайте, куда смотреть?

Подводя итог, эта статья демонстрирует работу концептов на практике, показывая, как они упрощают работу с шаблонами и улучшают качество сообщений об ошибках.

Удобно, а нас за переписывание целей лабораторных в вывод в любой вариации "цели достигнуты" отправляли домой подумать.

P.S.

Я нашёл

я выбрал

Алина, мы что-то про вас не знаем?

P.P.S.

Товарищи преподаватели (а я почем-то уверен, что это очередная серия сериала "зачёт за статью на хабр"), не надо так делать. Качественное образование не может нормально сосуществовать с оценками, поставленными за красивые глаза, за посещаемость, за статьи на хабр и за прочую подобную чертовщину.

Какой ужас. Делать C++ столько лет объективно более хорошим и удобным (начиная с C++11) и при этом внедрять вот это всё, чтобы никто никогда из начинающих программистов не стал даже притрагиваться к языку.

Учитывая, что в других популярных языках такой жести практически нет (либо она реализована удобнее), возникают сомнения, что в достаточно низкоуровневом C++ это вообще должно было быть.

Sign up to leave a comment.

Articles