Resultados de la búsqueda a petición "structured-bindings"

1 la respuesta

¿Las referencias constantes en enlaces estructurados extienden la vida útil del objeto descompuesto?

Hace la escrituraconst auto& [a, b] = f(); garantía de extender la vida útil del objeto devuelto desdef(), o al menos los objetosa yb ¿están obligados a? Leyendo a través dela ...

1 la respuesta

¿Por qué las declaraciones de descomposición no pueden ser constexpr?

Considere el siguiente fragmento para probar las próximas declaraciones de descomposición de características de C ++ 17 (anteriormente conocidas como enlaces estructurados) #include <cassert> #include <utility> constexpr auto divmod(int n, int ...

1 la respuesta

¿Se supone que decltype (auto) para un enlace estructurado es una referencia?

Considere un ejemplo: #include <iostream> #include <type_traits> #include <tuple> int main() { auto tup = std::make_tuple(1, 2); auto [ a, b ] = tup; decltype(auto) e = a; std::cout << std::boolalpha << std::is_reference_v<decltype(e)> << ...

1 la respuesta

Las variables marcadas como const usando enlaces estructurados no son const

He estado escribiendo un conjunto de clases para permitir una simple Pythonzip-función. El siguiente fragmento funciona (casi) exactamente como se esperaba. Sin embargo, las dos variablesa yb no sonconst. std::vector<double> v1{0.0, 1.1, 2.2, ...

1 la respuesta

Comprender la unión estructurada en C ++ 17 por analogía

Estoy tratando de entender el enlace estructurado introducido en C ++ 17. La explicación sobrecppreference [http://en.cppreference.com/w/cpp/language/structured_binding]no es obvio para mí, pero parece cv-auto ref-operator [x, y, z] = ...es más ...

2 la respuesta

enlace estructurado con [[maybe_unused]]

Los lenguajes funcionales con coincidencia de patrones (¿a veces?) Tienen la posibilidad de ignorar algunos valores enlazados, pero con enlaces estructurados de C ++ 17 parece que no hay forma de hacerlo (std :: ignorar con ...

2 la respuesta

Enlace estructurado de C ++ 17 que también incluye una variable existente

Esta respuesta SO [https://stackoverflow.com/a/40241520/1424877]enumera algunas deficiencias de las declaraciones de descomposición de C ++ 17 (la característica anteriormente conocida como "enlace estructurado"). Por ejemplo, no puede dar tipos ...

2 la respuesta

¿Cuáles son los tipos de identificadores introducidos por enlaces estructurados en C ++ 17?

Que yo sepa, los identificadores introducidos por enlaces estructurados en C ++ 17 son, de hecho, referencias a alguna variable "oculta". Tal que auto [ a, b ] = std::make_tuple(1, 2);esmas o menos equivalente a auto e = std::make_tuple(1, 2); ...

2 la respuesta

La captura implícita de Lambda falla con la variable declarada desde el enlace estructurado

Con el siguiente código, obtengo un error de compilaciónC2065 'a': undeclared identifier (usando Visual Studio 2017): [] { auto [a, b] = [] {return std::make_tuple(1, 2); }(); auto r = [&] {return a; }(); //error C2065 }();Sin embargo, el ...

2 la respuesta

enlaces estructurados y basados en rango para; suprimir advertencia no utilizada en gcc

Quiero atravesar un mapa usando enlaces de estructura, ignorando la clave: for (auto& [unused, val] : my_map) do_something(val);He probado diferentes opciones con gcc-7.2.0: // The warning is issued for ([[maybe_unused]] auto& [unused, val] : ...