Как объявить указатель метода постоянным

1st off это не вопрос о том, как указать на константный метод. Я хочу знать, как сделать мой указатель метода постоянным.

Дано:

struct foo {
    void func1();
    void func2();
};

Я могу создать указатель на метод с помощью void (foo::*bar)() = &foo::func1, но позже я могу сделать bar = &foo.func2, и я хочу предотвратить это.

Я могу легко сделать это с помощью const auto bar = &foo::func1, но я не уверен, как это сделать перед С++11.


person Jonathan Mee    schedule 19.04.2019    source источник
comment
Считается ли typedef читерством?   -  person MSalters    schedule 19.04.2019
comment
@MSalters Я имею в виду, что я бы, вероятно, сделал typedef ... но я действительно хотел увидеть подпись во всей ее красе.   -  person Jonathan Mee    schedule 19.04.2019


Ответы (1)


Все, что вам нужно сделать, это добавить ключевое слово const после *, например:

void(foo::*const _pointer)() = &foo::func1;
person terrakuh    schedule 19.04.2019