Domande taggate «c++20»

C ++ 20 è la destinazione per la versione di C ++ dopo C ++ 17. Questo tag dovrebbe essere usato (insieme al tag C ++) per domande sulle funzionalità di C ++ in pista per C ++ 20.



3
Cos'è l'operatore <=> in C ++?
Mentre stavo cercando di conoscere gli operatori C ++ , mi sono imbattuto in uno strano operatore di confronto su cppreference.com , * in una tabella che assomigliava a questa: "Bene, se questi sono operatori comuni in C ++, è meglio che li impari", ho pensato. Ma tutti i miei …

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
Cosa sono le coroutine in C ++ 20?
In cosa sono le coroutine c ++ 20? In che modo è diverso da "Parallelism2" o / e "Concurrency2" (guarda l'immagine sotto)? L'immagine sotto è da ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
Perché std :: ssize () è stato introdotto in C ++ 20?
C ++ 20 ha introdotto ilstd::ssize() funzione gratuita come di seguito: template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Una possibile implementazione sembra usare static_cast, per convertire il valore restituito dalla size()funzione membro di cl ass C nella sua controparte firmata. Dal momento che il size() funzione …
99 c++  stl  unsigned  signed  c++20 


3
L'operatore di uguaglianza non viene definito per un'implementazione dell'operatore di astronave personalizzata in C ++ 20
Sto riscontrando uno strano comportamento con il nuovo operatore di astronave &lt;=&gt;in C ++ 20. Sto usando Visual Studio 2019 compilatore con /std:c++latest. Questo codice viene compilato correttamente, come previsto: #include &lt;compare&gt; struct X { int Dummy = 0; auto operator&lt;=&gt;(const X&amp;) const = default; // Default implementation }; int …

2
Perché operator! = Rimosso in C ++ 20 per molti tipi di librerie standard?
Secondo cppreference , std::type_info::operator!=viene rimosso con C ++ 20, tuttavia, a std::type_info::operator==quanto pare rimane. Qual è il ragionamento dietro? Potrei essere d'accordo sul fatto che il confronto per l'ineguaglianza sia privo di significato, ma poi il confronto per l'uguaglianza sarebbe altrettanto insignificante, no? Allo stesso modo, operator!=di molti altri tipi …


2
Inizializzatori designati in C ++ 20
Ho una domanda su una delle funzionalità di c ++ 20, inizializzatori designati (maggiori informazioni su questa funzione qui ) #include &lt;iostream&gt; constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee : Person { unsigned salary{DEFAULT_SALARY}; }; int main() { std::cout &lt;&lt; std::boolalpha …

3
qual è il caso d'uso di esplicito (bool)
C ++ 20 ha introdotto esplicito (bool) che seleziona in modo condizionale in fase di compilazione se un costruttore viene reso esplicito o meno. Di seguito è riportato un esempio che ho trovato qui . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename …
24 c++  c++20  explicit 


3
Concetti di C ++ 20: quale specializzazione di template viene scelta quando l'argomento template si qualifica per più concetti?
Dato: #include &lt;concepts&gt; #include &lt;iostream&gt; template&lt;class T&gt; struct wrapper; template&lt;std::signed_integral T&gt; struct wrapper&lt;T&gt; { wrapper() = default; void print() { std::cout &lt;&lt; "signed_integral" &lt;&lt; std::endl; } }; template&lt;std::integral T&gt; struct wrapper&lt;T&gt; { wrapper() = default; void print() { std::cout &lt;&lt; "integral" &lt;&lt; std::endl; } }; int main() { wrapper&lt;int&gt; w; …

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.