https://www.timeanddate.com/date/weekday.html calcula varios datos sobre un día del año, por ejemplo: Dada una fecha arbitraria, ¿cómo se pueden calcular estos números con la especificación cronológica C ++ 20
https://www.timeanddate.com/date/weekday.html calcula varios datos sobre un día del año, por ejemplo: Dada una fecha arbitraria, ¿cómo se pueden calcular estos números con la especificación cronológica C ++ 20
Según cppreference , la mayoría de los usos de la volatilepalabra clave deben quedar en desuso en C ++ 20. ¿Cuál es la desventaja de volatile? ¿Y cuál es la solución alternativa cuando no se usa
C ++ usa el streamofftipo para representar un desplazamiento dentro de una secuencia (archivo) y se define de la siguiente manera en [stream.types]: using streamoff = implementation-defined ; El tipo streamoff es sinónimo de uno de los tipos integrales básicos firmados de tamaño suficiente...
¿Hay alguna manera de verificar en C ++ 11 si una enumeración es continua ? Es totalmente válido dar valores enum que no lo son. ¿Hay tal vez una característica como un rasgo de tipo en C ++ 14, C ++ 17 o tal vez C ++ 20 para verificar si la enumeración es continua? Esto se utilizará en un...
Estoy jugando con [[no_unique_address]]adentro c++20. En el ejemplo de cppreference tenemos un tipo Emptyy un tipo vacíosZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Aparentemente, el tamaño de Ztiene que ser al menos 2porque los tipos de e1y...
Hay una propiedad muy clara de las expresiones constantes en C ++: su evaluación no puede tener un comportamiento indefinido ( 7.7.4.7 ): Una expresión e es una expresión constante central a menos que la evaluación de e, siguiendo las reglas de la máquina abstracta ([intro.execution]), evalúe...
De cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Usando libc++, parece que el almacenamiento subrayado de std::chrono::yearsis shortestá firmado 16 bits . std::chrono::years( 30797 ) // yields...
Estaba jugando con c ++ 20 consteval en GCC 10 y escribí este código #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred,...
En su reciente charla "Punking de tipo en C ++ moderno", Timur Doumler dijo que std::bit_castno se puede usar para convertir un bit floaten un unsigned char[4]porque las matrices de estilo C no se pueden devolver de una función. Deberíamos usar std::memcpyo esperar hasta C ++ 23 (o posterior)...
En C ++ 20, se std::swapconvierte en una constexprfunción. Sé que la biblioteca estándar realmente se quedó atrás del lenguaje al marcar cosas constexpr, pero para 2017, <algorithm>era bastante importante, al igual que muchas otras cosas. Sin embargo, std::swapno lo fue. Recuerdo vagamente...
Trato de comprender los tipos de expresión de C ++ y cuanto más leo, más confundido estaba, ya que encuentro que el borrador de C ++ es muy difícil de digerir y, por lo tanto, prefiero otros recursos, pero se contradicen entre sí o no tienen en cuenta que la redacción y la definición entre...
Dado que los conceptos se definen como predicados en tiempo de compilación, ¿también es posible reutilizar estos predicados para algoritmos en tiempo de compilación? Por ejemplo, ¿sería posible verificar si todos los tipos de una tupla se ajustan a un concepto? Por lo que he visto, no es posible...
El conceptoequality_comparable_with<T, U> tiene la intención de declarar que los objetos de tipo Ty Use pueden comparar iguales entre sí, y si lo son, entonces esto tiene el significado esperado. Esta bien. Sin embargo, este concepto también requiere common_reference_t<T&,...
Hasta el estándar C ++ 20 de C ++, cuando queríamos definir un operador fuera de clase que usara algunos miembros privados de una clase de plantilla, usaríamos una construcción similar a esta: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs,...
Estoy buscando una manera de identificar lambdas vacías (sin captura) de otras lambdas en una función de plantilla. Actualmente estoy usando C ++ 17 pero tengo curiosidad por las respuestas de C ++ 20 también. Mi código se ve así: template<typename T> auto func(T lambda) { // The aguments...
Considere los siguientes tres structs: class blub { int i; char c; blub(const blub&) {} }; class blob { char s; blob(const blob&) {} }; struct bla { blub b0; blob b1; }; En plataformas típicas donde inthay 4 bytes, los tamaños, las alineaciones y el relleno total 1 son los...
Estamos en 2020 ahora y se acerca C ++ 20, junto con la tan esperada función de módulos C ++. Pero después de ver algunas charlas sobre CppCon, encuentro que los módulos C ++ están en un lugar extraño, especialmente para los administradores de paquetes de Linux (pacman, apt, emerge, etc.) Por lo...
Esta pregunta se refiere a la adición de P0593 al último borrador de C ++ 20 . Aquí está mi ejemplo: #include <cstdlib> #include <cstdio> void foo(void *p) { if ( std::getchar() == 'i' ) { *(int *)p = 2; std::printf("%d\n", *(int *)p); } else { *(float *)p = 2;...
Todos los constructores de std :: span se declaran constexpr, sin embargo, parece que no puedo hacer que ninguno de ellos funcione en un contexto constexpr. Descomentar cualquiera de los constexpr a continuación dará como resultado un error de compilación. #include <array> #include...
El siguiente código se compila bien con clang-trunk en el modo c ++ 17 pero se rompe en el modo c ++ 2a (próximo c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return...