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

1 la respuesta

Clang ya no puede compilar programas usando el encabezado <functional>

Estoy usandoclang La versión 4.0.0 en mi sistema que ejecuta ArchLinux, siempre funcionó bien, ¡pero recientemente ya no puedo compilar programas que usen ciertos encabezados STL! Detalles: Salida declang --version: clang version 4.0.0 ...

1 la respuesta

¿Por qué no hay soporte para concatenar std :: string y std :: string_view?

Desde C ++ 1z, tenemosstd::string_view [http://en.cppreference.com/w/cpp/string/basic_string_view], una vista ligera en una secuencia contigua de caracteres que evita la copia innecesaria de datos. En lugar de tener unconst std::string& ...

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

¿Ahora se permiten redefiniciones de miembros de datos estáticos constexpr? (pero no const en línea)?

Lo siguiente no se compila bajo gcc y clang en c ++ 14, pero tiene éxito con c ++ 1z: struct Cls { static constexpr int N = 0; }; constexpr int Cls::N; constexpr int Cls::N;El error de C ++ 14 es predecible:redefinition of ‘constexpr const ...

1 la respuesta

¿Cuál es la diferencia entre las variables estáticas constexpr y estáticas en línea en C ++ 17?

Con C ++ 17 obtenemos variables en línea. Uno de uso para ellos es definir campos constantes en las clases. Entonces, ¿cuál es la diferencia entre estas dos definiciones constantes: class MyClass { static constexpr int myFirstVar = 10; static ...

1 la respuesta

Evitar movimientos adicionales en make_unique / make_shared / emplace / etc para estructuras que usan inicialización agregada

std::make_unique() (y funciones similares) tienen un pocoproblema [http://coliru.stacked-crooked.com/a/7d4063069bcca194]: #include <cstdio> #include <memory> using namespace std; struct S { S() { printf("ctor\n"); } ~S() { printf("dtor\n"); } ...

1 la respuesta

Diferentes resultados en Clang y GCC cuando se convierte a std :: opcional <T>

Dado el siguiente código: #include <iostream> #include <optional> struct foo { explicit operator std::optional<int>() { return std::optional<int>( 1 ); } explicit operator int() { return 0; } }; int main() { foo my_foo; std::optional<int> ...

1 la respuesta

¿Pueden los parámetros de plantilla que no son de tipo en c ++ 17 ser decltype (auto)?

Descubrí que gcc y clang permiten usardecltype(auto) en la cláusula de tipo de parámetro de plantilla no tipo P.ej.: template <decltype(auto)> struct X {}; int foo ; int main() { X<(foo)> x; static_cast<void>(x); }[live demo ...

1 la respuesta

¿Cómo proporcionar una guía de deducción para la clase de plantilla anidada?

De acuerdo a [temp.deduct.guide/3 [https://timsong-cpp.github.io/cppwp/n4659/temp.deduct.guide#3]]: (...) Se declarará una guía de deducción en el mismo alcance que la plantilla de clase correspondiente y, para una plantilla de clase miembro, ...

1 la respuesta

¿Por qué boost :: filesystem :: path y std :: filesystem :: path carecen de operador +?

Considere las siguientes afirmaciones sobre la descomposición de la ruta, donde cada variable local, p.stem tiene la inicialización obvia p.auto stem = path.stem() — assert(root_path == root_name / root_directory); assert(path == root_name ...