Preguntas etiquetadas con c++11

84
¿Reutilizando un contenedor movido?

¿Cuál es la forma correcta de reutilizar un contenedor movido? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3:

84
Enum vs enumeración fuertemente tipada

Soy un principiante en programación C ++. Hoy me encuentro con un nuevo tema: fuertemente tipado enum. Lo he investigado un poco, pero hasta ahora no he podido averiguar por qué lo necesitamos y para qué sirve. Por ejemplo si tenemos: enum xyz{a, b, c}; /*a = 0, b = 1, c = 2, (Typical C...

84
std :: matriz vs rendimiento de matriz

Si quiero construir una matriz muy simple como int myArray[3] = {1,2,3}; ¿Debería usar std::arrayen su lugar? std::array<int, 3> a = {{1, 2, 3}}; ¿Cuáles son las ventajas de usar std :: array sobre los habituales? ¿Es más eficaz? ¿Simplemente más fácil de manejar para copiar /...

83
¿Cómo pasar std :: unique_ptr?

Estoy teniendo mi primer intento de usar C ++ 11 unique_ptr; Estoy reemplazando un puntero crudo polimórfico dentro de un proyecto mío, que es propiedad de una clase, pero que se transmite con bastante frecuencia. Solía ​​tener funciones como: bool func(BaseClass* ptr, int other_arg) { bool...

82
¿Cómo declarar una función que acepta una lambda?

Leí en Internet muchos tutoriales que explicaban cómo usar lambdas con la biblioteca estándar (como std::find), y todos eran muy interesantes, pero no pude encontrar ninguno que explicara cómo puedo usar una lambda para mis propias funciones. Por ejemplo: int main() { int test = 5;...

82
¿Tiene algún significado `const auto`?

Creo que la pregunta es bastante clara. ¿La autopalabra clave detectará automáticamente la const-ness, o siempre devolverá un tipo no const, incluso si hay, por ejemplo. dos versiones de una función (una que regresa consty la otra que no). Solo para que conste, lo uso const auto end =...

82
¿Cuál es la diferencia entre C ++ 0x y C ++ 11?

Veo un uso mixto de estos dos términos aquí en SO. Wikipedia dice C ++ 11, también conocido anteriormente como C ++ 0x ... pero no estoy seguro de por qué. ¿Por qué se llamó primero C ++ 0x y luego C ++ 11? Además, ¿qué significa la x? Mi conjetura, ¿como una variable?...