La muestra de código reducido engañoso no hace nada útil sino dos asignaciones posteriores a un puntero de miembro de datos. La primera asignación funciona, la segunda da un error de compilación. Presumiblemente porque es un miembro anidado.Puntero de miembro de datos anidados: ¿no es posible?
La pregunta sería: ¿Realmente no es posible dejar que un apuntador miembro apunte a un miembro anidado o me falta alguna sintaxis de fantasía allí?
struct Color {
float Red;
float Green;
float Blue; };
struct Material {
float Brightness;
Color DiffuseColor; };
int main() {
float Material::* ParamToAnimate;
ParamToAnimate = &Material::Brightness; // Ok
ParamToAnimate = &Material::DiffuseColor.Red; // Error! *whimper*
return 0; }
ATM Estoy trabajando con el uso de compensaciones de bytes y una gran cantidad de moldes. Pero eso es feo, me gustaría usar esos indicadores de miembros.
Sí, sé que la pregunta seguramente surgió antes (como casi cualquier pregunta). Sí, busqué de antemano pero no encontré una respuesta satisfactoria.
Gracias por su tiempo.
jpalecek es correcto; La respuesta a tu pregunta es no. Pero lo que realmente estás buscando es una solución a un problema. Con una reestructuración menor de sus datos, puede encontrar un tipo que apunte a los cuatro flotadores. (Consulte a continuación.) –