Domande taggate «c++-concepts»

5
Perché abbiamo bisogno richiede richiede?
Uno degli angoli dei concetti di C ++ 20 è che ci sono alcune situazioni in cui devi scrivere requires requires. Ad esempio, questo esempio tratto da [expr.prim.req] / 3 : A richiede-espressione può essere utilizzato anche in una richiede clausola ([Temp]) come un modo di scrivere vincoli ad hoc …
161 c++  c++-concepts  c++20 


3
Concetti di C ++ 20: quale specializzazione di template viene scelta quando l'argomento template si qualifica per più concetti?
Dato: #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` deve richiedere` common_reference`?
Il concetto ha loequality_­comparable_with<T, U> scopo di dichiarare che gli oggetti di tipo Te Upossono essere confrontati uguali tra loro, e se lo sono, allora questo ha il significato atteso. Va bene. Tuttavia, questo concetto richiede anche common_reference_t<T&, U&>di esistere. L'impulso principale per common_referencee la sua funzionalità relativa sembra essere …

1
Concept TS check ignora il modificatore di accesso privato
Voglio scrivere un concetto indicizzabile nel senso che una sequenza ha inizio / fine che restituiscono RandomAccessIterator o l'operatore [] è definito e restituisce un valore di tipo non vuoto. Ho usato le idee dall'articolo di Stroustrup per il concetto di sequenza e l'ho aumentato con: template <class T> concept …
10 c++  c++-concepts 

1
Le espressioni richieste sono autorizzate a "catturare" le variabili dell'ambito allegato?
Nel seguente esempio, gli argomenti della funzione vengono utilizzati per verificare con un'espressione obbligatoria se un'espressione che li utilizza è ben formata. L'espressione richiede non accetta argomenti; utilizza direttamente le variabili nell'ambito della funzione: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.