Articles of c ++ 11

¿Cómo funciona std :: forward?

Posible duplicado: Ventajas de usar adelante Sé lo que hace y cuándo usarlo, pero todavía no puedo entender cómo funciona. Sea lo más detallado posible y explique cuándo std::forward sería incorrecto si se le permitiera usar la deducción del argumento de la plantilla. Parte de mi confusión es esta: “Si tiene un nombre, es un […]

Mueva el operador de asignación y `if (this! = & Rhs)`

En el operador de asignación de una clase, generalmente debe verificar si el objeto que se le asignó es el objeto que lo invoca para no arruinarlo: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } ¿Necesita lo mismo para el operador de asignación de movimiento? […]

¿Cuál es la diferencia entre std :: move y std :: forward

Vi esto aquí: Move Constructor llamando a la clase base Move Constructor Podría alguien explicar: la diferencia entre std::move y std::forward , preferiblemente con algunos ejemplos de código? Cómo pensarlo fácilmente, y cuándo usarlo

¿Cómo habilito C ++ 11 en gcc?

Uso gcc 4.8.1 desde http://hpc.sourceforge.net en Mac OSX Mountain Lion. Estoy intentando comstackr un progtwig C ++ que utiliza la función to_string en . Necesito usar la bandera -std=c++11 cada vez: g++ -std=c++11 -o testcode1 code1.cpp ¿Hay alguna manera de incluir esta bandera por defecto?

¿Qué significa el ampersand único después de la lista de parámetros de una statement de función miembro?

De la respuesta aquí . class wrap { public: operator obj() const & { … } //Copy from me. operator obj() && { … } //Move from me. private: obj data_; }; Sé que && significa que el miembro se invocará cuando el objeto sea una referencia de valor real. Pero, ¿qué significa el ampersand […]

Crear un inicializador de matriz a partir de una tupla o parámetros de plantilla variadic

Quiero representar la descripción de una disposición de memoria persistente (por ejemplo, dispositivo Flash o EEPROM) incorporada estáticamente en el código del progtwig (preferiblemente en la sección ROM), a partir de un conjunto de parámetros de plantilla variados, donde los desplazamientos necesarios se calculan automáticamente en tiempo de comstackción . El objective es crear un […]

¿Qué es exactamente el “contexto inmediato” mencionado en el Estándar C ++ 11 para el cual se aplica SFINAE?

El párrafo 14.8.2 / 8 de la Norma C ++ 11 especifica las condiciones bajo las cuales una falla de sustitución debe o no dar como resultado un error de comstackción “dura” (causando por lo tanto la falla de la comstackción) o un error “suave” que simplemente hacer que el comstackdor descarte una plantilla de […]

C ++ 11 características en Visual Studio 2012

Una versión de vista previa de Visual Studio 2012 (la próxima versión después de VS2010) ya está disponible . ¿Alguien sabe qué características nuevas de C ++ 11 admite? (No estoy en condiciones de probarlo en este momento).

¿Cómo combino valores hash en C ++ 0x?

C ++ 0x agrega hash(…) . Sin embargo, no pude encontrar una función hash_combine, como se presenta en boost . ¿Cuál es la forma más limpia de implementar algo como esto? Quizás, usando C ++ 0x xor_combine ?

Encontrar la posición del elemento en C ++ 11 en función del rango para el ciclo

Supongamos que tengo el siguiente código: vector list; for(auto& elem:list) { int i = elem; } ¿Puedo encontrar la posición de elem en el vector sin mantener un iterador por separado?