¿Está bien el siguiente (ejemplo artificial) o es un comportamiento indefinido: // undefined behavior? const auto& c = SomeClass{}; // use c in code later const auto& v =
¿Está bien el siguiente (ejemplo artificial) o es un comportamiento indefinido: // undefined behavior? const auto& c = SomeClass{}; // use c in code later const auto& v =
Un compañero de trabajo quería escribir esto: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Dije que regresar string_viewme inquietaba a priori y, además, el alias aquí me parecía UB. Puedo decir con certeza que line =...
Tengo un *.cpparchivo que compilo con C ++ (no un compilador de C). La función que contiene se basa en una conversión (vea la última línea) que parece estar definida en C (¡corrija si estoy equivocado!), Pero no en C ++ para este tipo especial. [...] C++ code [...] struct sockaddr_in sa =...
Mientras investigaba un reclamo dudoso , escribí este pequeño programa de pruebanoway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } Al probar esto, obtengo: $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction...
Estoy rastreando un error en el código de un tercero y lo reduje a algo similar. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } Ejecutado en estable 1.38.0 esto imprime el puntero de función, pero beta...
A continuación se presentan dos casos de prueba para Comportamiento indefinido, expresados como IIFE (Inmediatamente llamado Axda-Lambda): constexpr auto test3 = []{ int* p{}; { int x{}; p = &x; } return *p; // Undefined Behaviour }(); // IIFE constexpr auto test4 = []{ int x =...
Estoy trabajando en una biblioteca que ayuda a realizar transacciones de tipos que se ajustan a un tamaño de puntero int sobre los límites de FFI. Supongamos que tengo una estructura como esta: use std::mem::{size_of, align_of}; struct PaddingDemo { data: u8, force_pad: [usize;...