Я пытаюсь получить указатель на определенную версию функции с перегрузкой. Вот пример:Как получить адрес перегруженной функции-члена?
class C
{
bool f(int) { ... }
bool f(double) { ... }
bool example()
{
// I want to get the "double" version.
typedef bool (C::*MemberFunctionType)(double);
MemberFunctionType pointer = &C::f; // <- Visual C++ complains
}
};
Сообщение об ошибке «Ошибка C2440:„инициализации“: не удается преобразовать из„перегруженной-функции“до„MemberFunctionType“»
Это работает, если f
не перегружен, но не в приведенном выше примере. Любое предложение?
EDIT
Осторожно, приведенный выше код не отражает мою реальную проблему, которая была, что я забыл «Уст» - это то, что принятый ответ указывает. Я оставлю вопрос таким, какой он есть, хотя, думаю, проблема может случиться с другими.
сделал быструю проверку и все скомпилировано. код выглядит нормально - если это ваш исходный код, конечно: D у вас есть константа точно так же? –
Какую версию MSVC вы используете. Он отлично работает в 2008 году. – Eclipse
конечно. я получаю огромное удовольствие: p –