Я смотрел презентацию концепций C ++ 20, и при попытке воспроизвести код, который, кажется, застрял. Почему, когда я использую эту концепцию в предложении «Требуется концепция», результаты неверно? Почему тип возврата предложения {t.root} int & - я имею в виду, что это имеет смысл, потому что, когда вы получаете доступ к участнику, вы получаете ссылку. < /P>
Так как же в представлении в 39:00. Что -то? < /p>
#include
#include
// Type is an int
template
concept MyObjConcept0_ = std::same_as;
// Type is any type that decays to int
template
concept MyObjConcept1_ = std::same_as;
// Type is an int&
template
concept MyObjConcept2_ = std::same_as;
template
concept Tree_ = requires (T t) {
{ t.root } -> MyObjConcept0_; // does not work : This is the concept I want to use
{ t.root } -> MyObjConcept1_; // works but will pass for int and int& : unsafe
{ t.root } -> MyObjConcept2_; // works but checks that t.root is an int&
std::same_as; // works: verbose and not a concept
};
template
struct tree {
MyObjConcept0T root;
};
static_assert(Tree_);
Подробнее здесь: https://stackoverflow.com/questions/633 ... able-to-sa
Как использовать C ++, требует пункта в концепции, требующей переменной члена для удовлетворения концепции ограничения? ⇐ C++
Программы на C++. Форум разработчиков
1758675235
Anonymous
Я смотрел презентацию концепций C ++ 20, и при попытке воспроизвести код, который, кажется, застрял. Почему, когда я использую эту концепцию в предложении «Требуется концепция», результаты неверно? Почему тип возврата предложения {t.root} int & - я имею в виду, что это имеет смысл, потому что, когда вы получаете доступ к участнику, вы получаете ссылку. < /P>
Так как же в представлении в 39:00. Что -то? < /p>
#include
#include
// Type is an int
template
concept MyObjConcept0_ = std::same_as;
// Type is any type that decays to int
template
concept MyObjConcept1_ = std::same_as;
// Type is an int&
template
concept MyObjConcept2_ = std::same_as;
template
concept Tree_ = requires (T t) {
{ t.root } -> MyObjConcept0_; // does not work : This is the concept I want to use
{ t.root } -> MyObjConcept1_; // works but will pass for int and int& : unsafe
{ t.root } -> MyObjConcept2_; // works but checks that t.root is an int&
std::same_as; // works: verbose and not a concept
};
template
struct tree {
MyObjConcept0T root;
};
static_assert(Tree_);
Подробнее здесь: [url]https://stackoverflow.com/questions/63347537/how-to-use-a-c-requires-clause-in-a-concept-to-require-a-member-variable-to-sa[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия