Preguntas etiquetadas con c++

124
Doble negación en C ++

Acabo de llegar a un proyecto con una base de código bastante grande. Principalmente estoy tratando con C ++ y gran parte del código que escriben usa doble negación para su lógica booleana. if (!!variable && (!!api.lookup("some-string"))) { do_some_stuff(); } Sé que estos tipos son...

124
¿Por qué el uso de tuplas en C ++ no es más común?

¿Por qué nadie parece usar tuplas en C ++, ya sea Boost Tuple Library o la biblioteca estándar para TR1? He leído mucho código C ++, y muy rara vez veo el uso de tuplas, pero a menudo veo muchos lugares donde las tuplas resolverían muchos problemas (generalmente devolviendo valores múltiples de las...

124
C ++, tienda libre frente a montón

new/deleteSe dice que las asignaciones dinámicas con tienen lugar en la tienda gratuita , mientras que las malloc/freeoperaciones usan el montón . Me gustaría saber si existe una diferencia real en la práctica. ¿Los compiladores hacen una distinción entre los dos términos? ( Almacén y montón...

124
Error "X no nombra un tipo" en C ++

Tengo dos clases declaradas de la siguiente manera: class User { public: MyMessageBox dataMsgBox; }; class MyMessageBox { public: void sendMessage(Message *msg, User *recvr); Message receiveMessage(); vector<Message> *dataMessageList; }; Cuando intento compilarlo usando gcc, aparece...

124
¿C ++ 11 lambdas capturan variables que no usan?

Cuando uso [=]para indicar que me gustaría que todas las variables locales sean capturadas por valor en una lambda, ¿eso dará como resultado que se copien todas las variables locales en la función, o solo todas las variables locales que son utilizadas por la lambda ? Entonces, por ejemplo, si...

124
¿Debo devolver EXIT_SUCCESS o 0 desde main ()?

Es una pregunta simple, pero sigo viendo respuestas contradictorias: ¿debería volver la rutina principal de un programa C ++ 0o EXIT_SUCCESS? #include <cstdlib> int main(){return EXIT_SUCCESS;} o int main(){return 0;} ¿Son exactamente lo mismo? ¿ EXIT_SUCCESSSolo debe usarse con exit()?...

124
¿Es 1.0 una salida válida de std :: generate_canonical?

Siempre pensé que los números aleatorios estarían entre cero y uno, sin ellos1 , es decir, son números del intervalo medio abierto [0,1]. La documentación en cppreference.com de std::generate_canonicalconfirma esto. Sin embargo, cuando ejecuto el siguiente programa: #include...

124
¿Cómo funcionan las variables en línea?

En la reunión de estándares 2016 de Oulu ISO C ++, el comité de estándares votó una propuesta llamada Variables en línea en C ++ 17. En términos simples, ¿qué son las variables en línea, cómo funcionan y para qué sirven? ¿Cómo deben declararse, definirse y utilizarse las variables en...

124
Lambda regresa: ¿es esto legal?

Considere este programa bastante inútil: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } Básicamente...