Preguntas etiquetadas con c++20

C ++ 20 es el objetivo de la versión de C ++ después de C ++ 17. Esta etiqueta debe usarse (junto con la etiqueta de C ++) para preguntas sobre las características de C ++ en camino para C ++ 20.


2
¿Qué es un "lapso" y cuándo debo usar uno?
Recientemente recibí sugerencias para usar span<T>'s en mi código, o he visto algunas respuestas aquí en el sitio que usan span' supuestamente algún tipo de contenedor. Pero no puedo encontrar algo así en la biblioteca estándar de C ++ 17. Entonces, ¿qué es esto misterioso span<T>y por qué (o cuándo) …

3
¿Cuál es el operador <=> en C ++?
Mientras intentaba aprender sobre los operadores de C ++ , me topé con un extraño operador de comparación en cppreference.com , * en una tabla que se veía así: "Bueno, si estos son operadores comunes en C ++, será mejor que los aprenda", pensé. Pero todos mis intentos de dilucidar …

5
¿Por qué requerimos requiere requiere?
Una de las esquinas de los conceptos de C ++ 20 es que hay ciertas situaciones en las que tienes que escribir requires requires. Por ejemplo, este ejemplo de [expr.prim.req] / 3 : Una expresión require también se puede usar en una cláusula require ([temp]) como una forma de escribir …
161 c++  c++-concepts  c++20 



3
¿Qué son las corrutinas en C ++ 20?
¿Qué son las corrutinas en c ++ 20? ¿En qué se diferencia de "Parallelism2" o "Concurrency2" (mire la imagen de abajo)? La siguiente imagen es de ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
¿Por qué se introdujo std :: ssize () en C ++ 20?
C ++ 20 introdujo la std::ssize()función gratuita de la siguiente manera: 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 posible implementación parece utilizar static_castpara convertir el valor de retorno de la size()función miembro de cl ass C en su contraparte firmada. Dado que la size()función miembro …
99 c++  stl  unsigned  signed  c++20 




2
¿Por qué se elimina operator! = En C ++ 20 para muchos tipos de biblioteca estándar?
Según cppreference , std::type_info::operator!=se elimina con C ++ 20, sin embargo, std::type_info::operator==aparentemente permanece. ¿Cuál es el razonamiento detrás? Podría estar de acuerdo en que la comparación de la desigualdad no tenga sentido, pero luego la comparación de la igualdad tampoco tendría sentido, ¿no? De manera similar, operator!=de muchos otros tipos …


2
Inicializadores designados en C ++ 20
Tengo una pregunta sobre una de las características de c ++ 20, inicializadores designados (más información sobre esta característica aquí ) #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; …

3
¿Cuál es el caso de uso para explícito (bool)
C ++ 20 introdujo explícito (bool) que selecciona condicionalmente en tiempo de compilación si un constructor se hace explícito o no. A continuación se muestra un ejemplo que encontré aquí . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename T&gt; explicit(!std::is_integral_v&lt;T&gt;) foo(T) {} …
24 c++  c++20  explicit 

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.