Preguntas etiquetadas con c++11

Use esta etiqueta para el código que debe compilarse como C ++ 11 (sin usar ninguna característica introducida en C ++ 14 o posterior).

8
¿Cuándo debería usar realmente noexcept?
La noexceptpalabra clave se puede aplicar adecuadamente a muchas firmas de funciones, pero no estoy seguro de cuándo debería considerar usarla en la práctica. Según lo que he leído hasta ahora, la adición de última hora de noexceptparece abordar algunos problemas importantes que surgen cuando los constructores de movimientos lanzan. …

6
¿Cuáles son los principales propósitos de usar std :: forward y qué problemas resuelve?
En perfecta expedición, std::forwardse utiliza para convertir las referencias rvalue nombre t1y t2las referencias rvalue sin nombre. ¿Cuál es el propósito de hacer eso? ¿Cómo afectaría eso a la función llamada innersi dejamos t1& t2como valores? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11 valores y confusión semántica de movimiento (declaración de retorno)
Estoy tratando de entender las referencias de valor y mover la semántica de C ++ 11. ¿Cuál es la diferencia entre estos ejemplos y cuál de ellos no va a hacer una copia vectorial? Primer ejemplo std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Segundo …


6
¿Cómo paso un argumento unique_ptr a un constructor o una función?
Soy nuevo en mover semántica en C ++ 11 y no sé muy bien cómo manejar unique_ptrparámetros en constructores o funciones. Considere esta clase haciendo referencia a sí misma: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); …



9
¿Qué es std :: promise?
Estoy bastante familiarizado con C ++ 11 del std::thread, std::asyncy std::futurelos componentes (por ejemplo, véase esta respuesta ), que son sencillas. Sin embargo, no puedo entender qué std::promisees, qué hace y en qué situaciones se usa mejor. El documento estándar en sí no contiene mucha información más allá de su …

1
C ++ plantilla typedef
Tengo una clase template<size_t N, size_t M> class Matrix { // .... }; Quiero hacer un typedefque cree un Vector(vector de columna) que sea equivalente a a Matrixcon tamaños N y 1. Algo así: typedef Matrix<N,1> Vector<N>; Lo que produce un error de compilación. Lo siguiente crea algo similar, pero …
369 c++  templates  c++11  typedef 

5
Devolver unique_ptr de funciones
unique_ptr<T>no permite la construcción de copias, sino que admite la semántica de movimiento. Sin embargo, puedo devolver un unique_ptr<T>de una función y asignar el valor devuelto a una variable. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( …
367 c++  c++11  unique-ptr 

5
Compilar C ++ 11 con g ++
Estoy tratando de actualizar mi compilador de C ++ a C ++ 11. He buscado un poco y he llegado a la conclusión de que tengo que usar la bandera -std=c++0xo -std=gnu++0x, pero no sé muchas cosas sobre las banderas. ¿Alguien puede ayudarme? (Estoy usando Ubuntu 12.04.) Aquí está el …
367 c++  c++11  g++  flags 

14
¿Cómo activo C ++ 11 en CMake?
Cuando intento ejecutar un archivo MAKE generado por CMake para compilar mi programa, aparece el error que el rango basado en bucles no se admite en el modo C ++ 98. Traté de agregar add_definitions(-std=c++0x)a mi CMakeLists.txt, pero no me ayudó. Intenté esto también: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() Cuando lo hago …
356 c++11  cmake 


14
¿Cuándo debe usar la capacidad constexpr en C ++ 11?
Me parece que tener una "función que siempre devuelve 5" es romper o diluir el significado de "llamar a una función". Debe haber una razón, o una necesidad de esta capacidad o no estaría en C ++ 11. ¿Por qué está ahí? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const …
337 c++  c++11  constexpr 


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.