por ejemplo: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1,
por ejemplo: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1,
Tengo una clase con un miembro unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; The Bar es una clase de terceros que tiene una función create () y una función destroy (). Si quisiera usar un std::unique_ptrcon él en una función independiente, podría hacer: void foo() {...
¿Cuáles son las diferencias entre -std=c++11y -std=gnu++11como parámetro de compilación para gcc y clang? La misma pregunta con c99y gnu99? Sé acerca de los estándares C ++ y C, son las diferencias en los parámetros que me interesan. He leído en alguna parte que tiene que ver con algunas...
Preguntas relevantes : Sobre C ++ 11: C ++ 11: std :: hilo agrupado? ¿Async (launch :: async) en C ++ 11 hará que los grupos de subprocesos sean obsoletos para evitar la creación de subprocesos costosos? Sobre Boost: C ++ impulsar el hilo reutilizando hilos boost :: thread y creando un grupo...
Estoy confundido con la descripción de thread_localen C ++ 11. Entiendo que cada hilo tiene una copia única de variables locales en una función. Todos los subprocesos pueden acceder a las variables globales / estáticas (posiblemente acceso sincronizado mediante bloqueos). ¿Y las...
¿ std::make_uniqueTiene algún beneficio de eficiencia como std::make_shared? En comparación con la construcción manual std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Encontré algo de código usando std :: shared_ptr para realizar una limpieza arbitraria al apagar. Al principio pensé que este código no podría funcionar, pero luego intenté lo siguiente: #include <memory> #include <iostream> #include <vector> class test { public: test() {...
La función C ++ 11 std::move(x)realmente no mueve nada en absoluto. Es solo un reparto al valor r. ¿Por qué se hizo esto? ¿No es esto
Encontré el siguiente código: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Hay una cosa que no puedo entender: ¿Dónde podría averiguar qué significa el operador de flecha ( ->) en el encabezado de la función? Supongo, lógicamente, que el...
Me sorprendió que esto no apareciera en mis resultados de búsqueda, pensé que alguien habría preguntado esto antes, dada la utilidad de la semántica de movimiento en C ++ 11: ¿Cuándo debo (o es una buena idea para mí) hacer una clase no movible en C ++ 11? (Razones otros de los problemas de...
Sé qué son los functores y cuándo usarlos con stdalgoritmos, pero no he entendido lo que Stroustrup dice sobre ellos en las Preguntas frecuentes de C ++ 11 . ¿Alguien puede explicar qué std::bindy std::functionson, cuando deberían ser utilizados, y dar algunos ejemplos para los...
auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 y versiones posteriores imprimen "¡Estás usando clang ++!" y advertir sobre la captura foo no utilizada. g ++ 4.9.0 y versiones posteriores...
En el operador de asignación de una clase, generalmente debe verificar si el objeto asignado es el objeto de invocación para no arruinar las cosas: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } ¿Necesita lo mismo para el...
Siempre pensé que los números aleatorios estarían entre cero y uno, sin ellos1 , es decir, son números del intervalo medio abierto [0,1]. La documentación en cppreference.com de std::generate_canonicalconfirma esto. Sin embargo, cuando ejecuto el siguiente programa: #include...
Cuando uso [=]para indicar que me gustaría que todas las variables locales sean capturadas por valor en una lambda, ¿eso dará como resultado que se copien todas las variables locales en la función, o solo todas las variables locales que son utilizadas por la lambda ? Entonces, por ejemplo, si...
Recientemente me encontré con una desoptimización extraña (o más bien perdí la oportunidad de optimización). Considere esta función para desempaquetar de manera eficiente conjuntos de enteros de 3 bits a enteros de 8 bits. Descomprime 16 ints en cada iteración de bucle: void unpack3bit(uint8_t*...
He estado trabajando en un código C ++ que ha escrito un amigo y obtengo el siguiente error que nunca antes había visto al compilar con gcc4.6: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would...
Cerrado . Esta pregunta se basa en opiniones . Actualmente no acepta respuestas. ¿Quieres mejorar esta pregunta? Actualice la pregunta para que pueda responderse con hechos y citas editando esta publicación . Cerrado hace 2 años . Mejora esta...
Lo he usado std::tiesin pensarlo mucho. Funciona, así que acabo de aceptar que: auto test() { int a, b; std::tie(a, b) = std::make_tuple(2, 3); // a is now 2, b is now 3 return a + b; // 5 } Pero, ¿cómo funciona esta magia negra ? ¿Cómo se crea un temporal por std::tiecambio ay b? Encuentro...
Sé que en C ++ 11 agregaron la función para inicializar una variable a cero como tal double number = {}; // number = 0 int data{}; // data = 0 ¿Existe una forma similar de inicializar un std::vectorde una longitud fija a todos los