Запитання з тегом «c++-concepts»

5
Чому нам потрібні необхідні потреби?
Один із куточків концепцій C ++ 20 - це те, що існують певні ситуації, в яких потрібно писати requires requires. Наприклад, цей приклад з [expr.prim.req] / 3 : Потрібно вираз також може бути використано в вимагаєте-положення ([Темп]) в якості способу написання спеціальних обмежень на аргументах шаблону , такі як один …
161 c++  c++-concepts  c++20 

3
Які відмінності між поняттями та обмеженнями шаблонів?
Я хочу знати, які семантичні відмінності між повною пропозицією концепцій C ++ та обмеженнями шаблонів (наприклад, обмеження, як з’явилося в Dlang, або нова концепція-lite пропозиція для C ++ 1y ). Що можуть зробити повноцінні концепції, ніж не можуть обмеження шаблонів?
96 c++  c++11  d  c++-concepts 

3
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> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { wrapper<int> w; …

1
Чи потрібна `рівність_порівнянний_з`, вимагає "загальної_посилання"?
Концепціяequality_­comparable_with<T, U> покликана заявити , що об'єкти типу Tі Uможуть бути порівняні рівні один одному, і якщо вони є, то це має очікуваний сенс. Це добре. Однак це поняття також вимагає common_reference_t<T&, U&>існування. Основним поштовхом до common_referenceта його супутньої функціональності, здається, є можливість ввімкнути проксі-ітератори , мати місце для представлення …

1
Концепція перевірки TS ігнорує модифікатор приватного доступу
Я хочу написати поняття "Індексируемое", яке означає, що послідовність або починається / закінчується, що повертає RandomAccessIterator, або оператор [], визначається і повертає значення недійсного типу. Я використав ідеї зі статті Stroustrup для концепції Sequence та доповнив її: template <class T> concept bool Indexable = Sequence<T> || requires(T t, size_t n) …
10 c++  c++-concepts 

1
Чи дозволено виразів, щоб "захоплювати" змінні змістовної області?
У наступному прикладі аргументи функції використовуються для тестування з необхідним вираженням, чи добре сформований вираз з їх допомогою. Вираз, що вимагає, не має аргументів; він безпосередньо використовує змінні в області функцій: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); }) …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.