Visual Studio C ++ Проверьте, есть ли у класса база - PullRequest
0 голосов
/ 27 мая 2018

Я хотел бы знать, есть ли способ в Visual Studio C ++ проверить (изнутри метода), есть ли у класса база с определенным базовым членом в нем.Метод Foo () в приведенном ниже коде иллюстрирует то, что я пытаюсь выполнить.

Я пытался использовать __ if_exists () и __ super , но это не похоже на работу.Любой совет будет оценен.

Метод Foo () одинаков для A (базовый) и B (производный).Это потому, что первоначальная идея состояла в том, чтобы добавить этот метод с помощью макроса без различия между базовым и производным классами.

class A {
    public:
        bool Foo() {
            __if_exists(__super::Foo) {
                return __super::Foo();
            }
            __if_not_exists(__super::Foo) {
                return false;
            }
    }
};

class B : public A {
    public:
        bool Foo() {
            __if_exists(__super::Foo) {
                return __super::Foo();
            }
            __if_not_exists(__super::Foo) {
                return false;
            }
    }
};
...