Preguntas etiquetadas con c++17

C ++ 17 es el nombre del estándar C ++ aprobado en 2017. Se basa en el estándar C ++ 14 anterior, mejorando el lenguaje central y la biblioteca estándar, y agregando algunas características nuevas del lenguaje.


6
¿Por qué usar std :: make_unique en C ++ 17?
Por lo que tengo entendido, C ++ 14 se introdujo std::make_uniqueporque, como resultado de que no se especificaba el orden de evaluación de parámetros, esto no era seguro: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Explicación: si la evaluación primero asigna la memoria para el puntero sin procesar, luego llama g()y …
96 c++  c++17  unique-ptr 

4
experimental :: error del enlazador del sistema de archivos
Intento usar las nuevas funciones de c ++ 1z en la cabeza del desarrollo dentro de gcc 6.0. Si pruebo este pequeño ejemplo: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } Tengo: / …
95 c++  gcc  c++17 



1
¿Cómo funciona la elisión de copia garantizada?
En la reunión de estándares ISO C ++ de Oulu de 2016, el comité de estándares votó en C ++ 17 una propuesta llamada elisión de copia garantizada a través de categorías de valor simplificadas . ¿Cómo funciona exactamente la elisión de copia garantizada? ¿Cubre algunos casos en los que …





2
std :: ignore con enlaces estructurados?
Preludio: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z introducirá sintaxis para enlaces estructurados que permitirán escribir en lugar de int a, b, c; std::tie(a, b, c) = f(); algo como auto [a, b, c] = f(); Sin embargo, std::tietambién se permite especificar std::ignoreque se ignoren …

6
Inicializar variables en una declaración "si"
Leí que en C ++ 17 podemos inicializar variables en ifdeclaraciones como esta if (int length = 2; length == 2) //execute something En vez de int length = 2; if (length == 2) //do something Aunque es más corto, afecta la legibilidad del código (especialmente para las personas que …
80 c++  c++17 



2
¿Por qué remove_reference no funciona en las funciones?
Me encontré con algo extraño al hacer una metaprogramación de plantilla el otro día. Básicamente se trata de esta afirmación, no (como era de esperar) pasar. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); Al principio pensé que estaba cometiendo un error sintáctico al definir una referencia de función, pero esta afirmación pasa, mostrando que ese …
38 c++  templates  types  c++17 

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.