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

2 la respuesta

Diferencia entre el análisis de void () y int ()

Después de leer sobre el análisis más irritante, experimenté un poco y encontré este programa. Hay dos líneas muy similares. Uno de ellos arroja advertencias tanto en g ++ 7 como en clang ++ - 3.9, otro no. int main() { void(); // no warning ...

3 la respuesta

¿Por qué S :: x no se usa odr?

Considere este ejemplo decppreference [http://en.cppreference.com/w/cpp/language/definition]: struct S { static const int x = 1; }; void f() { &S::x; } // discarded-value expression does not odr-use S::xEstoy de acuerdo que&S::x es unexpresión ...

4 la respuesta

¿Cómo puede esta estructura tener sizeof == 0?

Hay una publicación antigua que solicita una construcción para la cualsizeof volvería0. Hay algunas respuestas de puntajes altos de usuarios de alta reputación que dicen que según el estándar ningún tipo o variable puede tener un tamaño de 0. Y ...

2 la respuesta

Lambda genérica y su argumento como expresión constante

GCC 7.2 y clang 5.0.0 aceptan el siguiente código, pero Microsoft VS 2017 15.5.0 Preview 5 y el compilador Intel C ++ 19 lo rechazan: struct S { }; constexpr int f(S) { return 0; } int main() { auto lambda = [](auto x) { constexpr int e = f(x); ...

2 la respuesta

¿Es un comportamiento indefinido `reinterpret_cast` a` T * `a` T (*) [N] `?

Considere el siguiente escenario: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()); (*p)[0] = 42;Es estocomportamiento indefinido? Creo que es. a.data() devuelve unint*, que no es lo mismo queint(*)[8] losreglas de alias de ...

1 la respuesta

¿Podemos aplicar contenido no citado explícitamente de las referencias normativas al estándar C ++?

En el estándar C ++ 11 (el proyecto más cercano es N3337 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf]) sección1.2 Referencias normativas dice: Los siguientes documentos referenciados son indispensables para la aplicación ...

1 la respuesta

Operador condicional + upcast + referencia constante

Inspirado poresta pregunta [https://stackoverflow.com/questions/23049166/], Probé el siguiente código: struct A { virtual void doit() const = 0; }; struct B : public A { virtual void doit() const; }; struct C : public A { virtual void doit() ...

2 la respuesta

Deducir el primer argumento de plantilla con otros parámetros de plantilla predeterminados

Gcc y clang parecen estar en desacuerdo sobre si este código debe compilarse o no: #include <type_traits> template <typename Signature, int N = 0> struct MyDelegate { }; template <typename D> struct signature_traits; template <template ...

3 la respuesta

¿Es fgets () devuelve NULL con un búfer corto compatible?

En la unidad que prueba una función que contienefgets(), se encontró con un resultado inesperado cuando el tamaño del búfern < 2. Obviamente, un tamaño de búfer de este tipo es una tontería, pero la prueba está explorando casos ...

1 la respuesta

std :: especialización parcial de plantilla hash

Escribí alguna clase con plantilla: template <class T, class Allocator = ::std::allocator<T> > class my_list;Debería escribir :: std :: hash specializtion para esta clase. ¿Cómo puedo hacer eso? Especialización parcial simple: namespace std { ...