Preguntas con la etiqueta [c++11]
¿Es posible utilizar std::string en una expresión constante?
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?
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 hacer que std::shared_ptr administre una matriz asignada con una nueva T[]?
¿ 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
¿Cuándo se pueden omitir las llaves exteriores en una lista de inicializadores?
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 {
La plantilla "constructor de copia" no impide el constructor de movimientos generado por el compilador
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
¿Tienen alguna utilidad las referencias de rvalue a const?
Supongo que no, pero me gustaría confirmarlo. ¿ Tiene algún uso dónde const Foo&&hay Fooun tipo de clase?
Implementación de un contador atómico de 64 bits con átomos de 32 bits
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
Diferencia entre std::decay y std::remove_reference
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 se pueden iterar sobre los elementos de un std::tuple?
¿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
c ++ 11 ¿Optimización del valor de retorno o movimiento? [duplicar]
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
¿Qué es la palabra clave nullptr y por qué es mejor que NULL?
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?
¿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:
¿Qué es el procedimiento de pedido parcial en la deducción por plantilla?
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
¿Debería el estilo de sintaxis del tipo de retorno final convertirse en el predeterminado para los nuevos programas C++11? [cerrado]
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?
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