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

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

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

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, я работаю, используя смещения байтов и много приведений. Но это ужасно, я бы лучше использовал эти указатели на элементы. 1292 Да, я знаю, что этот вопрос наверняка возникал раньше (как почти любой вопрос). Да, я искал заранее, но не нашел удовлетворительного ответа.

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

10
задан user2672165 23 October 2019 в 15:58
поделиться