Articles of c ++ 11

¿Diferencia entre el paréntesis angular y las comillas dobles “” al incluir archivos de encabezado en C ++?

Posible duplicado: ¿Cuál es la diferencia entre #include y #include “filename”? ¿Cuál es la diferencia entre el corchete angular y las comillas dobles ” ” al incluir archivos de cabecera en C ++? Me refiero a qué archivos se supone que deben incluirse usando, por ejemplo: #include y qué archivos se van a incluir usando, […]

¿Cómo habilitar C ++ 11 en Qt Creator?

El título es bastante autodescriptivo. Descargué Qt Creator 2.7.0 y estoy intentando comstackr algunos códigos básicos de C ++ 11: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Recibo el siguiente error: range based for loops are not allowed in c++ 98 mode Sin embargo, según […]

C ++ 11 forzado de rango inverso

¿Hay algún adaptador de contenedor que invierta la dirección de los iteradores para que pueda iterar sobre un contenedor en reversa con for-loop basado en rangos? Con iteradores explícitos, yo convertiría esto: for (auto i = c.begin(); i != c.end(); ++i) { … dentro de esto: for (auto i = c.rbegin(); i != c.rend(); ++i) […]

¿Cadena :: c_str () ya no es nulo terminado en C ++ 11?

En C ++ 11 basic_string::c_str se define exactamente igual que basic_string::data , que a su vez se define como exactamente igual a *(begin() + n) y *(&*begin() + n) (cuando 0 <= n < size() ). No puedo encontrar nada que requiera que la cadena siempre tenga un carácter nulo en su extremo. ¿Esto significa […]

¿Por qué C ++ no tiene un recolector de basura?

No estoy haciendo esta pregunta debido a los méritos de la recolección de basura antes que nada. Mi principal razón para preguntar esto es que sí sé que Bjarne Stroustrup ha dicho que C ++ tendrá un recolector de basura en algún momento. Dicho esto, ¿por qué no se ha agregado? Ya hay algunos recolectores […]

¿Es correcto este comportamiento de vector :: resize (size_type n) en C ++ 11 y Boost.Container?

Tengo una aplicación C ++ 03 en la que los tipos std::vector se utilizan como almacenamientos intermedios temporales. Como tal, a menudo se les cambia el tamaño usando std::vector::resize() para garantizar que sean lo suficientemente grandes como para contener los datos requeridos antes de su uso. El prototipo C ++ 03 para esta función es […]

std :: paso de hilo por referencia llamadas copia constructor

Bueno, tengo un problema con pasar datos a un hilo usando std :: thread. Pensé que entendía la semántica general de los constructores de copias, etc. pero parece que no entiendo el problema. Tengo una clase simple llamada Log que ha ocultado su constructor de copia así: class Log { public: Log(const char filename[], const […]

¿Cómo capturar un unique_ptr en una expresión lambda?

He probado lo siguiente: std::function getAction(std::unique_ptr &&psomething){ //The caller given ownership of psomething return [psomething](){ psomething->do_some_thing(); //psomething is expected to be released after this point }; } Pero no comstack. ¿Algunas ideas? ACTUALIZAR: Como se sugirió, se requiere una nueva syntax para especificar explícitamente que necesitamos transferir la propiedad a la lambda, ahora estoy pensando […]

Cómo codificar un operador de módulo (%) en C / C ++ / Obj-C que maneja números negativos

Una de mis mascotas odia los lenguajes derivados de C (como matemático) es que (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly ¿Cuál es la mejor solución? C ++ permite la posibilidad de plantillas y sobrecarga del operador, pero ambas son aguas turbias para mí. ejemplos recibidos con […]

¿Debería el estilo de syntax del tipo de retorno final convertirse en el predeterminado para los nuevos progtwigs de C ++ 11?

C ++ 11 admite una nueva syntax de función: auto func_name(int x, int y) -> int; Actualmente esta función se declararía como: int func_name(int x, int y); El nuevo estilo no parece ser ampliamente adoptado aún (por ejemplo, en el gcc stl) Sin embargo, ¿debería preferirse este nuevo estilo en todos los nuevos progtwigs de […]