Preguntas etiquetadas con c++

C ++ es un lenguaje de programación de propósito general. Originalmente fue diseñado como una extensión de C y tiene una sintaxis similar, pero ahora es un lenguaje completamente diferente. Use esta etiqueta para preguntas sobre el código (que se compilará) con un compilador de C ++. Utilice una etiqueta específica de la versión para preguntas relacionadas con una revisión estándar específica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], etc.

2
¿Cómo implementar la forma generalizada de std :: same_as (es decir, para más de dos parámetros de tipo) que es independiente del orden de los parámetros?
Antecedentes Sabemos que el concepto std::same_ases agnóstico al orden (en otras palabras, simétrico): std::same_as<T, U>es equivalente a std::same_as<U, T>( pregunta relacionada ). En esta pregunta, me gustaría implementar algo más general: template <typename ... Types> concept same_are = ...que verifique si los tipos en el paquete Typesson iguales entre sí. …



1
estructura de inicialización con {0}
Estoy depurando un código que es esencialmente idéntico a esto: struct Foo { int a; int b; }; struct Bar { Bar() {} Foo foo{0}; }; Cuando hago una instancia de Bar , parece que ambos ay bse inicializan a cero. ¿Está esto garantizado? ¿Dónde puedo encontrar eso en la …


1
¿Puede un compilador colocar la implementación de un destructor virtual declarado implícitamente en una sola unidad de traducción separada?
El siguiente código compila y enlaza con Visual Studio(tanto 2017 como 2019 con /permissive-), pero no compila con ninguno gcco clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct Bar; std::unique_ptr<Bar> bar_; }; foo.cpp #include …


2
¿Por qué Expected <T> en LLVM implementa dos constructores para Expected <T> &&?
Expected&lt;T&gt;se implementa en llvm / Support / Error.h. Es una unión etiquetada que tiene una To una Error. Expected&lt;T&gt;es una clase de plantilla con tipo T: template &lt;class T&gt; class LLVM_NODISCARD Expected Pero estos dos constructores realmente me confunden: /// Move construct an Expected&lt;T&gt; value from an Expected&lt;OtherT&gt;, where OtherT …
8 c++  llvm 

3
Estruct tm almacena información de zona horaria como miembro de datos
Considere el siguiente código C ++ #include &lt;ctime&gt; #include &lt;iostream&gt; int main() { std::time_t now = std::time(nullptr); struct tm local = *std::localtime(&amp;now); struct tm gm = *std::gmtime(&amp;now); char str[20]; std::strftime(str, 20, "%Z", &amp;local); std::cout &lt;&lt; str &lt;&lt; std::endl; // HKT std::strftime(str, 20, "%Z", &amp;gm); std::cout &lt;&lt; str &lt;&lt; std::endl; // …
8 c++  c  ctime  time.h 

3
Salida extraña al sumar 1 << 2 y 1 << 3 en C ++
Así que solo estaba tratando de manipular un poco en C ++. Esto es lo que probé: int a = 1&lt;&lt;2; cout&lt;&lt;a; Esto da la salida como 4. int a = 1&lt;&lt;3; cout&lt;&lt;a; Esto da la salida como 8 Pero cuando lo hago: int a = 1&lt;&lt;2 + 1&lt;&lt;3; cout&lt;&lt;a; …

2
¿Cómo se implementa std :: atomic_ref para los tipos no atómicos?
Me pregunto cómo se std::atomic_refpuede implementar de manera eficiente (uno std::mutexpor objeto) para objetos no atómicos, ya que la siguiente propiedad parece bastante difícil de aplicar: Las operaciones atómicas aplicadas a un objeto a través de atomic_ref son atómicas con respecto a las operaciones atómicas aplicadas a través de cualquier …


2
Cumplimiento estándar de una macro C
Tengo esta pequeña joya aquí (idea robada descaradamente de las preguntas frecuentes de C): /* A lot of checks omitted to get rid of the architectures with a "weird" endianness */ /*...*/ #define MP_ENDIANESS ( (0x41424344ul == *(uint32_t*)"ABCD") ? MP_BIG_ENDIAN : MP_LITTLE_ENDIAN ) ¿Cumple (no es un comportamiento indefinido) con …
8 c++  c 
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.