template<typename T>
class TD;
struct foo {
float bar(float a, float b) { return a*b; }
};
...
auto p = &foo::bar; // [1]
//TD<decltype(p)> fpType; // [2]
С закомментированной строкой 2 QT Creator 4.8.0 показывает p как тип float (foo::*)(foo * const, float, float) в отладчике.
Если строка 2 не закомментирована, ошибка компилятора показывает p как тип float (foo::*)(float, float).
Я думаю, что правильный тип - float (foo::*)(float, float), так что это ошибка QT Creator?
Компилятор G++ 7.3.0.
используйте `для кода, а не '
@MooingDuck: Нет, я думаю, что foo * const будет правильным типом для указателя this.
@SirVisto: я думал о const foo*, моя ошибка.





любая функция-член получает неявный указатель
this, который, вероятно, вы видите в отладчике.