Preguntas con la etiqueta [c++11]

Lista c++11 preguntas

Usando C++ 11, Ubuntu 14.04, cadena de herramientas predeterminada de GCC . Este código falla: constexpr std::string constString = "constString"; error: el tipo 'const string {también conocido como const std::basic_string}'

¿Cómo sabe std::end el final de una matriz?

3
respuestas
41
votos
10.4k
vistas

std::beginy std::endconocer el principio y el final de un contenedor o una matriz. Es fácil conocer el endy beginde un vector, por ejemplo, porque es una clase que proporciona esta

¿ Puedes señalar std::shared_ptruna matriz? Por ejemplo, std::shared_ptr<int> sp(new int[10]); Si no, ¿por qué no? Una razón que ya conozco es que no se puede incrementar/disminuir el archivo std::shared_ptr. Por

Recibí el error C2078 en VC2010 al compilar el siguiente código. struct A { int foo; double bar; }; std::array<A, 2> a1 = // error C2078: too many initializers {

Considere el siguiente programa y los comentarios que contiene: template<class T> struct S_ { S_() = default; // The template version does not forbid the compiler // to generate the

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
107
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