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.


8
¿Cómo utilizar CCache con CMake?
Me gustaría hacer lo siguiente: Si CCache está presente en PATH, use "ccache g ++" para la compilación, de lo contrario use g ++. Intenté escribir un pequeño script my-cmake que contenía CC="ccache gcc" CXX="ccache g++" cmake $* pero no parece funcionar (ejecutar make todavía no usa ccache; verifiqué esto …
90 c++  unix  cmake  ccache 

2
¿Cuál es el propósito de usar una unión con un solo miembro?
Cuando estaba leyendo el código fuente de Seastar , noté que hay una estructura de unión llamada tx_sideque tiene un solo miembro. ¿Es esto un truco para lidiar con cierto problema? FYI, pego la tx_sideestructura a continuación: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; …
89 c++  c++14  unions 

6
¿Alguna razón para no usar lambdas globales?
Teníamos una función que usaba una lambda interna que no capturaba, por ejemplo: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Ahora la funcionalidad implementada por el lambda se hizo necesaria en otros lugares, …
89 c++  lambda 


5
¿Qué haría 'std :;' hacer en c ++?
Recientemente estuve modificando un código y encontré un error preexistente en una línea dentro de una función: std:;string x = y; Este código aún se compila y funciona como se esperaba. La definición de cadena funciona porque este archivo lo es using namespace std;, por lo que std::era innecesario en …
89 c++  std  colon 

2
¿Por qué se compararía el carácter 'A' con 0x41?
Estaba mirando algo de código C ++ y encontré la siguiente construcción: if('A' == 0x41) { // ... } else if('A' == 0xc1) { // ... } else { // ... } Recibo una advertencia de Visual Studio que dice: Advertencia La expresión condicional C4127 es constante. Visual Studio está …
89 c++  string 

5
¿Por qué una lambda tiene un tamaño de 1 byte?
Estoy trabajando con la memoria de algunas lambdas en C ++, pero estoy un poco desconcertado por su tamaño. Aquí está mi código de prueba: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout …
89 c++  c++11  lambda  c++14  sizeof 

3
Cómo hacer una typedef condicional en C ++
Estoy tratando de hacer algo como esto: #include <iostream> #include <random> typedef int Integer; #if sizeof(Integer) <= 4 typedef std::mt19937 Engine; #else typedef std::mt19937_64 Engine; #endif int main() { std::cout << sizeof(Integer) << std::endl; return 0; } pero me sale este error: error: missing binary operator before token "(" ¿Cómo …
89 c++  c++11 


4
¿Por qué memmove es más rápido que memcpy?
Estoy investigando puntos críticos de rendimiento en una aplicación que pasa el 50% de su tiempo en memmove (3). La aplicación inserta millones de enteros de 4 bytes en matrices ordenadas y utiliza memmove para desplazar los datos "hacia la derecha" para dejar espacio para el valor insertado. Mi expectativa …
89 c++  c  performance  memory 


4
Compilar código multiproceso con g ++
Tengo el código más fácil de todos: #include <iostream> #include <thread> void worker() { std::cout << "another thread"; } int main() { std::thread t(worker); std::cout << "main thread" << std::endl; t.join(); return 0; } aunque todavía no puedo compilarlo g++para ejecutarlo. Más detalles: $ g++ --version g++ (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 …
89 c++  linux  ubuntu  gcc  g++ 



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.