Resultados de la búsqueda a petición "c++17"

1 la respuesta

"Constexpr if" frente a "if" con optimizaciones: ¿por qué se necesita "constexpr"?

C ++ 1z introducirá "constexpr if", un if que tendrá una de las ramas eliminadas, según la condición. Parece razonable y útil. Sin embargo, ¿no es posible prescindir de la palabra clave constexpr? Creo que durante la compilación, el compilador ...

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

¿Es posible asegurar que una función constexpr se llame como máximo una vez en tiempo de compilación?

Como se pregunta en el título: ¿Es posible asegurar que se llame a una función constexpr como máximo una vez en tiempo de compilación? Esto claramente no será posible si la función no es constepxr; Podría escribir una función que se llama cada ...

1 la respuesta

¿Dónde usar std :: variant over union?

Por favor explique cuál es la diferencia entreunion ystd::variant y por quéstd::variant fue introducido en el estándar? En que situaciones debemos usarstd::variant sobre la vieja escuelaunion?

1 la respuesta

¿Por qué se requiere <> cuando se especifica una clase de plantilla que tiene valores predeterminados para todos sus parámetros de plantilla?

¿Hay una buena razón por la cual<> es obligatorio al especificar una clase de plantilla que tiene valores predeterminados para todos sus parámetros de plantilla? p.ej. #include <iostream> template<typename T = int> class C { public: T obj = 0; ...

1 la respuesta

Detección contigua de iterador

C ++ 17 introdujo el concepto de ContiguousIterator http://en.cppreference.com/w/cpp/iterator [http://en.cppreference.com/w/cpp/iterator]. Sin embargo, no parece que haya planes para tener uncontiguous_iterator_tag (de la misma manera que ...

1 la respuesta

¿Qué tipo hará que "std :: has_unique_object_representations" devuelva falso?

Acppref [http://en.cppreference.com/w/cpp/types/has_unique_object_representations], Veo un extrañotipo corrector de rasgos: std::has_unique_object_representations Por su descripción, no puedo imaginar ningún tipoT ...

1 la respuesta

¿Cómo hacer que la 'evaluación de cortocircuito' también esté disponible en 'plegar expresiones'?

#include <type_traits> #define FORWARD(arg)\ std::forward<decltype(arg)>(arg) template<typename... Args> constexpr bool AndL(Args&&... args) { return (... && FORWARD(args)); } template<typename... Args> constexpr bool AndR(Args&&... args) { ...

1 la respuesta

Constructor con argumentos de plantilla sin tipo

Enesta pregunta [https://stackoverflow.com/questions/3960849/c-template-constructor]se dice que es imposible usar directamente argumentos de plantilla para el constructor de clases, porque si escribes algo como struct S{ template<typename T> S() ...