Итак, у меня есть этот шаблон псевдонима:
template<class MemberT, class ClassT>
using make_member_ptr = MemberT ClassT::*;
И я заметил, что make_member_ptr<int(char, long), class_type>
- это то же самое, что int(class_type::*)(char, long)
.Раньше я думал, что указатель на функцию-член полностью отличается от указателя на элемент данных.
Чем отличаются указатели на функции-члены от указателей на элементы данных?
Я мог бы выяснить, что если функция-член является виртуальной, то вызов через указатель на базовую функцию вызовет производную функцию, что не является проблемой для указателей, не являющихся членами функции.
ПричинаЯ спрашиваю, что я имею дело с общими указателями на членов, и я хочу знать, на что мне нужно обращать внимание, и на особый случай указателей на функции-члены и элементы-члены.