initializer-list

deducción de lista de inicialización y tipo de plantilla

Considere la función: template<typename T> void printme(T&& t) { for (auto i : t) std::cout << i; ... sto: const auto il = {'a', 'b', 'c'}; printme(il); O printme<std::initializer_list<char>>({'a', 'b', 'c'});

static assert on initializer list:: size()

¿Por qué no se permite std::initializer_list::size en un static_assert, aunque esté declarado como constexpr en mi libstdc++ ... lic: constexpr int size() { return 5; } }; int main() { A a; static_assert(a.size() == 4, "oh no!"); return 0; }

C++ vector de matrices

¿por Qué funciona esto: std::pair<int, int> p = {1,2}; std::vector<std::pair<int, int>> vp = { {1,2}, {3, ... falla con: Error: no se pudo convertir ‘{{1, 2}, {3, 4}}’ a ‘std::vector<std::array<int, 2u> >’ Gracias

Diferencia de inicialización con o sin llaves en C++11

Podemos inicializar la variable de dos maneras en C++11 Uno: int abc = 7; Dos: int abc {7}; ¿Cuál es la diferencia entre estos dos métodos? ¿Cómo los trata el compilador de manera diferente o la forma en que se ejecutan estos códigos?

Ámbito de una variable inicializada en la lista de parámetros de una función

El siguiente código construye, compila y ejecuta (C++, mingw) aparentemente sin ningún problema. Sin embargo, ¿estoy garanti ... << std::endl; } int main() { foo({4,5}); // <-- What is the scope of the struct initialized here? return 0; }

duración de una std:: valor de retorno de la lista de inicializadores

La implementación de GCC destruye un array std::initializer_list devuelto por una función al final de la expresión completa d ... po de retorno lambda solo ocurre cuando se devuelve una expresión, y una lista de inicio entre corchetes no es una expresión.

¿Puedo hacer referencia a Miembros Anteriores de una Lista Inicializadora?

Digamos que quiero hacer referencia a un miembro de un initializer_list que ya he definido. ¿Puedo hacerlo? Este código comp ... erado: "13 55" tanto en Visual Studio como en gcc , me gustaría saber que es legal: const int foo[2] = {13, foo[0] + 42};