C ++ 20 Концепции: итерабильная концепция элементаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ 20 Концепции: итерабильная концепция элемента

Сообщение Anonymous »

Я пытаюсь создать концептуальную элементу элементаре , которая может определить тип вложенных диапазонов или нет. Например, элементы в std :: ecector не итерационные, а элементы (

Код: Выделить всё

std::vector
) в std :: ecector itetable. Идея об использовании std :: iterator_traits возникает в моем уме, и экспериментальный код связан с следующим. Тем не менее, эта элементная концепция не работает как ожидаемое поведение. Есть ли какая -то идея исправить эту элементную концепцию ?

Код: Выделить всё

template
concept ElementIterable = requires(typename std::iterator_traits::value_type x)                        //  requires-expression
{
x.begin();          // must have `x.begin()`
x.end();            // and `x.end()`
};
Использование этого элементабельного здесь.

Код: Выделить всё

template requires ElementIterable
void Foo(T input);

template requires ElementIterable
void Foo(T input)
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/64466642/c20-concepts-element-iterable-concept[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»