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 se puede evaluar un const expr tan rápido?
He estado probando expresiones constantes que se evalúan en tiempo de compilación. Pero jugué con un ejemplo que parece increíblemente rápido cuando se ejecuta en tiempo de compilación. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () { long …
13 c++  const  constexpr 

6
¿Cómo comparar estructuras genéricas en C ++?
Quiero comparar estructuras de forma genérica y he hecho algo como esto (no puedo compartir la fuente real, así que solicite más detalles si es necesario): template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) == 0; } Esto …



4
¿La explicación del orden relajado es errónea en la preferencia?
En la documentación de std::memory_ordercppreference.com hay un ejemplo de pedido relajado: Pedidos relajados Las operaciones atómicas etiquetadas memory_order_relaxedno son operaciones de sincronización; no imponen un orden entre los accesos concurrentes de memoria. Solo garantizan la atomicidad y la coherencia del orden de modificación. Por ejemplo, con x e y inicialmente …


1
Posible error del compilador en MSVC
El siguiente código se compila con gcc y clang (y muchos otros compiladores de C ++ 11) #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = …
13 c++  c++11  visual-c++ 


2
¿Cómo determinar qué archivos de encabezado incluir?
Digamos que tengo el siguiente código (muy simple). #include <iostream> int main() { std::cout << std::stoi("12"); } Esto compila bien tanto en g ++ como en clang; sin embargo, no se compila en MSVC con el siguiente error: error C2039: 'stoi': no ​​es miembro de 'std' error C3861: 'stoi': identificador …
13 c++ 


1
Operador ambiguo en gcc
Hice una plantilla de función para imprimir algunos de los contenedores stl #include <iostream> #include <vector> #include <string> template <template <typename, typename> class C, typename T, typename A> std::ostream& operator<<(std::ostream& os, const C<T, A>& container) { for (auto& elem : container) { os << elem << " "; } return …
13 c++  c++17 


1
¿Por qué las mismas variables externas externas con el mismo nombre en diferentes bloques obtienen diferentes enlaces entre los compiladores en c ++?
Mientras estaba comprobando qué enlaces se otorgan a variables locales externas , encontré que hay un comportamiento diferente entre los compiladores por ejemplo, si probé el código a continuación, como puede ver en los comentarios, las variables vartienen enlaces diferentes // foo.cpp int var = 10; // external linkage // …
12 c++  g++  clang++  extern  linkage 

1
¿Igualdad_comparable_con` necesita requerir `common_reference`?
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&, U&>existir. El ímpetu principal common_referencey la funcionalidad que lo acompaña parecen …


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.