Tag: REINTERPRET-CAST
¿Esto está permitido? ``` include ``` ``` class Foo { public: int a; int b; }; ``` ``` class Bar : public Foo { // NO se agregaron miembros de datos public: inline int sum() const { return a+b;}; }; ``` ``` int main(){ Foo * foo = new Foo{10,20}; . . . Read more
Tengo una typedef simple del arreglo: typedef char myString[8]; Y una función que toma un myString y otra que toma un myString*. Curiosamente, ambas de estas funciones tienen la misma implementación y producen la misma salida: void foo(myString s){ std::string stdstr(reinterpret_cast<char*>(s), 8); std::cout << stdstr << std::endl; } void bar(myString* . . . Read more
Entre static_cast, dynamic_cast, reinterpret_cast y const_cast, solo static_cast es capaz de devolver un objeto del tipo deseado, mientras que los otros tipos solo pueden devolver un puntero o referencia a la representación. ¿Por qué es así? Ejemplos: int y = 3; double z = reinterpret_cast (y);//error double z = reinterpret_cast<double&&> . . . Read more
Me gustan/odio los linters, así que pensé en probar “clang-tidy” con todas las verificaciones activadas para ver cómo me va y cómo puedo mejorar. Aparte de las reglas estilísticas o no aplicables, me encontré con esta llamada: glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)0); que activa “Los lanzamientos . . . Read more
Estoy usando C# (.NET 5). Imagina que tengo una clase que almacena un arreglo de estructuras (por ejemplo, floats): public class AlmacenaArreglo { private float[] flotantes; } Los datos de esta clase se cargan desde un archivo binario serializado. Para asignar el arreglo de floats, utilizo una función auxiliar para . . . Read more