Preguntas con la etiqueta [c++11]

Lista c++11 preguntas

Supongo que no, pero me gustaría confirmarlo. ¿ Tiene algún uso dónde const Foo&&hay Fooun tipo de clase?

Me gustaría improvisar un contador atómico uint64 a partir de uint32 atómicos. El contador tiene un único escritor y múltiples lectores. El escritor es un manejador de señales por lo

Cuando hago metaprogramación de plantillas en C++, a menudo me encuentro con algo como lo siguiente: template <typename T> S<T> make_wrapper(T&& t) { return S<T>(std::forward<T>(t)); } Sé que debería usar

¿Cómo puedo iterar sobre una tupla (usando C++ 11)? Intenté lo siguiente: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); pero esto no funciona: Error 1: lo siento, no implementado: no se puede

No entiendo cuándo debo usar std::movey cuándo debo dejar que el compilador optimice... por ejemplo: using SerialBuffer = vector< unsigned char >; // let compiler optimize it SerialBuffer read( size_t

Ahora tenemos C++11 con muchas características nuevas. Uno interesante y confuso (al menos para mí) es el nuevo nullptr. Bueno, ya no hay necesidad de esa desagradable macro NULL. int*

¿Reutilizar un contenedor movido?

3
respuestas
105
votos
16.1k
vistas

¿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:

Al leer el estándar C++ 11, no puedo entender completamente el significado de la siguiente declaración. Los ejemplos son muy bienvenidos. Se utilizan dos conjuntos de tipos para determinar el

C++ 11 admite una nueva sintaxis 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

¿Qué cambios importantes se introducen en C++ 11?

0
respuestas
232
votos
28.2k
vistas

Sé que al menos uno de los cambios en C++ 11 que hará que algún código antiguo deje de compilarse: la introducción de explicit operator bool()en la biblioteca estándar, reemplazando

Hay una imagen muy conocida (hoja de referencia) llamada "Elección de contenedor C++". Es un diagrama de flujo para elegir el mejor contenedor para el uso deseado. ¿Alguien sabe si

Este es un ejemplo mínimo: class Foo { public: Foo(int x) {}; }; void ProcessFoo(Foo& foo) { } int main() { ProcessFoo(Foo(42)); return 0; } Lo anterior se compila bien

¿Por qué debería std::move un std::shared_ptr?

8
respuestas
221
votos
103.5k
vistas

Estuve revisando el código fuente de Clang y encontré este fragmento: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } ¿Por qué querría std::moveun std::shared_ptr? ¿Tiene algún sentido transferir la

Figura 1: plantillas de funciones TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); principal.cpp #include "TemplHeader.h" extern template void f<T>(); //is

¿Se pueden crear plantillas para las funciones lambda?

14
respuestas
289
votos
185.4k
vistas

En C++ 11, ¿hay alguna manera de crear una plantilla para una función lambda? ¿O es intrínsecamente demasiado específico para utilizarlo como modelo? Entiendo que puedo definir una clase/functor con