Size: a a a

2020 August 06

DP

Denis Paukaev in supapro.cxx
Danya
А можно ли концепт передать в другой шаблон как шаблонный шаблонный параметр?
ну через тип его можно кривовато протащить, но не уверен, что это то, что нужно

https://godbolt.org/z/nMfjhb
источник

PK

Pavel Kazakov in supapro.cxx
концепт — это "угловатый", "выпуклый", "сериализуемый", там нет места параметрам
источник

PK

Pavel Kazakov in supapro.cxx
например, что это за концепт такой, как "возможно сериализуемый" — впихнём бул?
источник

ПК

Побитый Кирпич... in supapro.cxx
Pavel Kazakov
концепт — это "угловатый", "выпуклый", "сериализуемый", там нет места параметрам
концепт это предикат над типом, почему нельзя сделать его High ordered, и например заюзать частичное применение - фабрику концептов
источник

PK

Pavel Kazakov in supapro.cxx
концепты отнимают часть кейсов, для которых раньше нужен был сфинае, но это всё-таки и не полная замена, и не новая игрушка
источник

PK

Pavel Kazakov in supapro.cxx
Побитый Кирпич
концепт это предикат над типом, почему нельзя сделать его High ordered, и например заюзать частичное применение - фабрику концептов
ну допустим, но какой-то есть пример удачный? я ни одного не вижу
источник

D

Danya in supapro.cxx
Типа я хочу так
template <typename T, template <typename> concept IteratorConcept>
concept sequence = requires(T seq) {
   { std::begin(seq) } -> IteratorConcept;
   { std::end(seq) } -> IteratorConcept;
}

template <typename C>
    requires sequence<C, std::input_iterator>
void for_each(const C& c) {
}

template <typename C>
    requires sequence<C, std::random_access_iterator>
void sort(const C& c) {
}
источник

PK

Pavel Kazakov in supapro.cxx
ну почему тэгами нельзя сделать?
источник

AS

Anatoly Shirokov in supapro.cxx
@unterumarmung @AsGreyWolf давайте без словесной дуэли и перехода на личности.
источник

АК

Александр Караев... in supapro.cxx
Побитый Кирпич
концепт это предикат над типом, почему нельзя сделать его High ordered, и например заюзать частичное применение - фабрику концептов
согласен
источник

АК

Александр Караев... in supapro.cxx
если можно юзать концепты, то почему нельзя делать функции, возвращающие концепты
источник

АК

Александр Караев... in supapro.cxx
для шаблонов есть conditional_t, для концептов - нет
источник

AF

Aidar Fattakhov in supapro.cxx
Побитый Кирпич
В чём разница?
коньюнкции, дизбюнкции и уб на их основе
источник

AF

Aidar Fattakhov in supapro.cxx
Danya
Типа я хочу так
template <typename T, template <typename> concept IteratorConcept>
concept sequence = requires(T seq) {
   { std::begin(seq) } -> IteratorConcept;
   { std::end(seq) } -> IteratorConcept;
}

template <typename C>
    requires sequence<C, std::input_iterator>
void for_each(const C& c) {
}

template <typename C>
    requires sequence<C, std::random_access_iterator>
void sort(const C& c) {
}
почему ты не можешь повесить концепт "контейнер" на доставалку типа итератора?
источник

AF

Aidar Fattakhov in supapro.cxx
а в сорт проверять итератор через эту доставалку?
источник

D

Danya in supapro.cxx
Приведи пожалуйста (псевдо)код, мне сложно воспринимать идеи через слова
источник

AF

Aidar Fattakhov in supapro.cxx
<T> using container_iterator = void;
<T> Requires is_same <begin(T), end(T)> using container_iterator = begin(T);

<T> requires input_iterator<container_iterator<T» void sort
источник

AF

Aidar Fattakhov in supapro.cxx
собственно певрое наверное на самом деле common_range а во втором лучше 2 концепта коньюнктом на рендж и итератор
источник

AF

Aidar Fattakhov in supapro.cxx
а лил тут даже уже есть random_access_range который написан именно так
источник

BH

Blue Heart in supapro.cxx
Есть конструкция вида
#define BEFORE_COPY_HDL( handler_name ) BEFORE_COPY_HANDLER( handler_name, GEN_UNIQUE_ID( MethodHandlerName ) )

Что капсом - макросы (3 штуки). Пожалуйста, подскажите, как заставить последний макрос вернуть значение, которое уйдёт вторым параметром во второй макрос?
источник