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

3 la respuesta

¿Es la aritmética del puntero en un miembro inactivo de un sindicato UB?

Consideremos este código de ejemplo: struct sso { union { struct { char* ptr; char size_r[8]; } large_str; char short_str[16]; }; const char* get_tag_ptr() const { return short_str+15; } };En[basic.expr] ...

1 la respuesta

¿Usa std :: launder para obtener un puntero a un miembro de objeto activo desde un puntero a un objeto inactivo?

Esta pregunta sigue a estauno [https://stackoverflow.com/questions/48188737/is-pointer-arithmetic-on-inactive-member-of-a-union-ub] Consideremos este código de ejemplo: struct sso { union{ struct { char* ptr; char size_r[8]; } large_str; ...

3 la respuesta

Interconvertibilidad de puntero frente a tener la misma dirección

losborrador de trabajo de la norma N4659 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf]dice: [basic.compound] Si dos objetos son interconvertibles por puntero, entonces tienen la misma dirección y luego nota que Un objeto ...

2 la respuesta

Lanzamiento incorrecto: ¿es el lanzamiento o el uso el que es un comportamiento indefinido?

Si realizo una conversión de una base a un tipo derivado, pero el tipo base no es una instancia de tipo derivado, pero solo uso el resultado si lo es, ¿obtengo un comportamiento indefinido? Difícil de entender lo que estoy preguntando? Echale un ...

4 la respuesta

Acceso al miembro protegido a través del puntero de miembro: ¿es un truco?

Todos conocemos miembros especificadosprotected desde una clase base solo se puede acceder desde una propia instancia de clase derivada. Esta es una característica del Estándar, y esto se ha discutido en Stack Overflow varias veces: No se puede ...

1 la respuesta

¿Por qué los miembros de datos de clase no se pueden inicializar mediante la sintaxis de inicialización directa?

Tengo curiosidad por saber por qué los miembros de datos de la clase no se pueden inicializar utilizando la sintaxis (). Considere el siguiente ejemplo: #include <iostream> class test { public: void fun() { int a(3); std::cout<<a<<'\n'; } ...

3 la respuesta

¿Al no evaluar la expresión a la que se aplica sizeof, es legal desreferenciar un puntero nulo o no válido dentro de sizeof en C ++?

Primero que nada, he vistoesta pregunta sobre C99 [https://stackoverflow.com/q/19785518/57428]y las referencias de respuesta aceptadasel operando no se evalúa redacción en el borrador del Estándar C99. No estoy seguro de que esta respuesta se ...

4 la respuesta

¿Es volátil o restringido el nivel superior significativo en un prototipo de función?

¿Hay alguna diferencia práctica entre los siguientes prototipos? void f(const int *p); void f(const int *restrict p); void f(const int *volatile p);La sección C11 6.7.6.3/15 (oración final) dice que los calificadores de nivel superior no se ...

1 la respuesta

¿Puede un controlador de terminación lanzar una excepción?

¿Cuál es el comportamiento definido del siguiente programa, si lo hay? #include <iostream> #include <exception> #include <cstdlib> void i_throw() { std::cout << "i_throw()" << std::endl; // std::terminate() is noexcept so if the terminate ...

2 la respuesta

¿Reinterpret_casting una integral a un tipo de puntero y viceversa produce el mismo valor?

De acuerdo ahttp://en.cppreference.com/w/cpp/language/reinterpret_cast [http://en.cppreference.com/w/cpp/language/reinterpret_cast], Se sabe quereinterpret_cast un puntero a una integral de tamaño suficiente y respaldo arroja el mismo valor. Me ...