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

1 la respuesta

reinterpret_cast, char * y comportamiento indefinido

¿Cuáles son los casos dondereinterpret_casting achar* (ochar[N]) es un comportamiento indefinido, y ¿cuándo es un comportamiento definido? ¿Cuál es la regla general que debería usar para responder esta pregunta? Como aprendimos deesta pregunta ...

2 la respuesta

¿Cómo se rompe el código P0522R0?

Hoy estaba leyendo la página de soporte de C ++ 17 de clang. He notado algo extraño. La característicaEmparejar parámetros de plantilla de plantilla con argumentos compatibles ...

4 la respuesta

Determinar si un constructor de una clase base abstracta no es excepto?

En C ++ 11 y versiones posteriores, cómo determinar si un constructor de una clase base abstracta esnoexcept? Los siguientes métodos no funcionan: #include <new> #include <type_traits> #include <utility> struct Base { Base() noexcept; virtual ...

1 la respuesta

¿Es legal verificar si la dirección de un subobjeto se encuentra dentro de los límites de un objeto que contiene

2 preguntas: ¿El siguiente código está bien formado con un comportamiento definido? ¿Hay alguna implementación posible de c ++ en la que se pueda afirmar? Código (c ++ 11 y superior): #include <cassert> #include <utility> #include <ciso646> ...

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

Sobrecarga de estructuras con operador de llamada de plantilla y lambdas genéricos - gcc vs clang

He descubierto un fragmento de código que se compila y funciona correctamente en Clang ++ 4 (y tronco)pero falla al compilarg ++ 7 (y tronco). Supongamos que tengo lo siguientestruct tipos: struct a { void foo() { } }; struct b { void bar() { } ...

3 la respuesta

Clang y las expresiones de plegado binario: la maldición del paquete de parámetros vacío

Específicamente Clang 3.6.0, el que actualmente aloja Coliru. Todos estos fragmentos se llaman desde: int main() { foo(); std::cout << "\n----\n"; foo(1, 2, 3); }El siguiente código: template <class... Args> void foo(Args... args) { std::cout ...

1 la respuesta

Cómo habilitar el soporte de C ++ 17 en la extensión VSCode C ++

Sigo obteniendo garabatos de error en std :: string_view, pero puedo construir bien. ¿Hay alguna manera de decirle a intellisense o al linter C ++ que use C ++ 17? El error específico que obtengo es: namespace "std" has no member "string_view"

1 la respuesta

¿Tiene un puntero std :: byte las mismas implicaciones de alias que char *?

Las reglas estrictas de alias de C ++ (y C) incluyen que unchar* yunsigned char* puede alias cualquier otro puntero. AFAIK no hay una regla análoga parauint8_t*. Por lo tanto, mi pregunta: ¿Cuáles son las reglas de alias para ...

1 la respuesta

¿Es esto un error? El constructor Constexpr silenciosamente se convierte en no constexpr

Mire este código: struct NonConstexpr { NonConstexpr() { } }; template <typename T> struct Bar { NonConstexpr nonConstexpr; constexpr Bar() { } }; struct Foo { Bar<void> bar; constexpr Foo() { } };Foo tiene un miembro,Foo::bar::nonConstexpr, que ...