Resultados de la búsqueda a petición "language-lawyer"

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

constexpr: definición y declaración para miembros constexpr

Si quiero usar algunas cosas de conveniencia comomake_array No tengo oportunidad de declarar mi matriz primero y luego hacer la definición como se hizo en tiempos "anteriores" porque el tipo de mi var no está disponible antes de ...

2 la respuesta

Plantilla de alias coincidente como argumento de plantilla

Considera elsiguiente código [https://wandbox.org/permlink/XjObkCwtvrkB3Y7R]: #include <type_traits> template<template<class...> class T, class... U> struct is_specialization_of : std::false_type{}; template<template<class...> class T, class... ...

3 la respuesta

¿Evaluar strlen en tiempo de compilación?

Si mi código tiene estoconstexpr cuerda constexpr char my_str[] = "hello";el tipo demy_str contiene información sobre su tamaño, es decirsizeof(my_str) es una constante 6 y se puede usar en cualquier lugar donde se requiera una constante. Qué ...

2 la respuesta

Estándar C ++: ¿las variables constexpr con ámbito de espacio de nombres tienen enlace interno?

Imagina que tenemos un encabezadofoo.h que contiene lo siguiente: #ifndef FOO_H_ #define FOO_H_ namespace foo { constexpr std::string_view kSomeString = "blah"; } #endif // FOO_H_Esfoo::kSomeString garantizado tener enlace interno en cualquier ...

3 la respuesta

¿Es `std :: array <T, 0>` construible por defecto donde `T` no es construible por defecto?

Considere el siguiente código: #include <array> struct T { T() = delete; }; int main() { std::array<T, 0> a; a.size(); }Inicializamos por defecto una matriz de tamaño 0. Como no hay elementos, no hay constructor deT debe ser llamado Sin ...

4 la respuesta

¿Es posible la referencia nula?

¿Es válido este fragmento de código (y un comportamiento definido)? int &nullReference = *(int*)0;Tanto g ++ como clang ++ lo compilan sin previo aviso, incluso cuando se usa-Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Por supuesto, la ...

4 la respuesta

¿Puede el compilador explotar la optimización de base vacía si la clase contiene un miembro de la clase base?

Considerar struct base {}; struct child : base {};Es bien sabido quesizeof(child) puede ser 1 mediante la aplicación deoptimización de base vacía. Ahora, sin embargo, considere struct base {}; struct child : base {base b;};¿Puede el compilador ...

2 la respuesta

¿Es ... foo un operador o una sintaxis?

He oído... referido a ambos como 'propagaciónsintaxis'y' la propagaciónoperador', siendo este último mucho más popular. La URL de la relevanteDocumentación de ...

1 la respuesta

¿Existe una regla especial para lambda en caso de decltype (auto)?

Si entendí correctamenteesta respuesta [https://stackoverflow.com/a/44701336/4324224]y sección estándar referenciada [dcl.type.auto.deduct-5] [http://eel.is/c++draft/dcl.spec.auto#dcl.type.auto.deduct-5], el código: decltype(auto) a = e;siempre ...