Preguntas etiquetadas con c++

187
¿Cómo usar enumeraciones como banderas en C ++?

Tratar enums como banderas funciona bien en C # a través del [Flags]atributo, pero ¿cuál es la mejor manera de hacerlo en C ++? Por ejemplo, me gustaría escribir: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | EatsFish | Endangered; Sin...

187
¿Las llaves innecesarias en C ++?

Al hacer una revisión de código para un colega hoy, vi una cosa peculiar. Había rodeado su nuevo código con llaves como esta: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } ¿Cuál es el resultado, si lo hay, de esto? ¿Cuál podría ser la...

186
¿Cómo se arrancan GCC y g ++?

Esto me ha estado molestando por un tiempo. ¿Cómo se compilan GCC y g ++? Supongo que cada revisión se compila con una revisión previamente construida. ¿Es esto cierto? Y si es así, ¿significa que las versiones más antiguas de g ++ y GCC se escribieron en

186
fork () se ramifica más de lo esperado?

Considere la siguiente pieza de código: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Este programa genera 8 puntos. ¿Cómo puede ser eso posible? ¿No debería haber 6...

186
Lo que hizo i = i ++ + 1; legal en C ++ 17?

Antes de comenzar a gritar comportamiento indefinido, esto se enumera explícitamente en N4659 (C ++ 17) i = i++ + 1; // the value of i is incremented Sin embargo, en N3337 (C ++ 11) i = i++ + 1; // the behavior is undefined ¿Qué cambió? De lo que puedo reunir, de [N4659 basic.exec]...

185
mmap () vs. bloques de lectura

Estoy trabajando en un programa que procesará archivos que podrían tener un tamaño de 100 GB o más. Los archivos contienen conjuntos de registros de longitud variable. Tengo una primera implementación en funcionamiento y ahora estoy buscando mejorar el rendimiento, particularmente para hacer E / S...

185
¿En qué escenario uso un contenedor STL particular?

He estado leyendo sobre contenedores STL en mi libro sobre C ++, específicamente la sección sobre STL y sus contenedores. Ahora entiendo que todos y cada uno de ellos tienen sus propias propiedades específicas, y estoy cerca de memorizarlos ... Pero lo que aún no entiendo es en qué escenario se usa...

185
¿Contenedores STL o Qt?

¿Cuáles son los pros y los contras del uso de contenedores (Qt QMap, QVectoretc.) sobre su equivalente STL? Puedo ver una razón para preferir Qt: Los contenedores Qt se pueden pasar a otras partes de Qt. Por ejemplo, se pueden usar para rellenar ay QVariantluego a QSettings(aunque con alguna...

185
¿Cuándo usar la función en línea y cuándo no usarla?

Sé que en línea es una sugerencia o solicitud para el compilador y se usa para evitar gastos generales de llamadas a funciones. Entonces, ¿sobre qué base se puede determinar si una función es candidata para alinearse o no? ¿En qué caso se debe evitar la

185
std :: auto_ptr a std :: unique_ptr

Con la llegada del nuevo estándar (y partes ya disponibles en algunos compiladores), std::unique_ptrse supone que el nuevo tipo es un reemplazo std::auto_ptr. ¿Su uso se superpone exactamente (por lo que puedo hacer una búsqueda / reemplazo global en mi código (no es que lo haría, pero si lo...

185
¿No se puede usar el módulo en dobles?

Tengo un programa en C ++ (compilado usando g ++). Estoy tratando de aplicar dos dobles como operandos a la función de módulo, pero aparece el siguiente error: error: operandos no válidos de los tipos 'double' y 'double' a binario 'operator%' Aquí está el código: int main() { double x =...