Preguntas etiquetadas con initializer-list



8
initializer_list y mover semántica
¿Puedo sacar elementos de un std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Dado que std::intializer_list<T>requiere atención especial del compilador y no tiene una semántica de valor como los contenedores normales de …

6
¿Por qué std :: initializer_list no es un idioma integrado?
¿Por qué no está std::initializer_listincorporado un lenguaje central? Me parece que es una característica bastante importante de C ++ 11 y, sin embargo, no tiene su propia palabra clave reservada (o algo similar). En cambio, initializer_listes solo una clase de plantilla de la biblioteca estándar que tiene un mapeo implícito …

5
¿Puedo inicializar en lista un vector de tipo de solo movimiento?
Si paso el siguiente código a través de mi instantánea de GCC 4.7, intenta copiar los unique_ptrs en el vector. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Obviamente, eso no puede funcionar porque std::unique_ptrno se puede copiar: error: …

3
¿Cuándo usar el inicializador entre corchetes?
En C ++ 11, tenemos esa nueva sintaxis para inicializar clases que nos da una gran cantidad de posibilidades de cómo inicializar variables. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> c …



6
Rango inocente basado en bucle que no funciona
Lo siguiente no compila: #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Pruébalo en godbolt El error del compilador es: error: assignment of read-only reference 's' Ahora, en mi caso …
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.