Вопросы с тегом «c++-concepts»

161
Почему мы требуем требует требует?

Один из углов концепций C ++ 20 заключается в том, что есть определенные ситуации, в которых вы должны писать requires requires. Например, этот пример из [expr.prim.req] / 3 : Требуется выражение также может быть использовано в требуете-положение ([Темп]) в качестве способа написания специальных...

96
В чем разница между концепциями и ограничениями шаблона?

Я хочу знать, каковы семантические различия между предложением полных концепций C ++ и ограничениями шаблона (например, ограничениями, появившимися в Dlang, или предложением нового облегченного концепта для C ++ 1y ). На что способны полноценные концепции, которых не могут сделать ограничения...

23
C ++ 20 Основные понятия: какая специализация шаблона выбирается, когда аргумент шаблона соответствует нескольким понятиям?

Данный : #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T>...

12
Требуется ли для «равенства_компараблей_схем» `общего_референции`?

Концепцияequality_­comparable_with<T, U> призвана заявить , что объекты типа Tи Uмогут быть сравнены равны друг другу, и если они есть, то это имеет ожидаемый смысл. Хорошо. Тем не менее, эта концепция также требует common_reference_t<T&, U&>существования....

10
Разрешено ли выражениям «требуется» захватывать переменные вмещающей области?

В следующем примере аргументы функции используются для проверки с помощью выражения require, правильно ли сформировано выражение, использующее их. Выражение require не имеет аргументов; он напрямую использует переменные в области действия функции: #include <cstddef> #include <vector>...

10
Проверка концепции TS игнорирует модификатор частного доступа

Я хочу написать концепцию Indexable, означающую, что последовательность либо имеет начало / конец, которые возвращают RandomAccessIterator, либо определен operator [] и возвращает значение не типа void. Я использовал идеи из статьи Страуструпа для концепции Sequence и дополнил ее: template...