Указатель на вложенный элемент данных - не возможно?

Следующий пример сокращенного кода не делает ничего полезного, кроме двух последующих назначений указателя на элемент данных. Первое назначение работает, второе дает ошибку компилятора. Предположительно, потому что это вложенный член.

Вопрос был бы: действительно ли просто невозможно позволить указателю члена указывать на вложенный элемент, или я пропустил какой-нибудь причудливый синтаксис?

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; }

Я работаю вокруг с использованием байтовых смещений и большого количества преобразований. Но это ужасно, я бы лучше использовал эти указатели на элементы.

Да, я знаю, что этот вопрос наверняка возникал раньше (как почти любой вопрос). Да, я искал заранее, но не нашел удовлетворительного ответа.

Спасибо за ваше время.

Ответы на вопрос(7)

Ваш ответ на вопрос