pointer-to-member

Я хочу использовать указатель на член класса в качестве параметра шаблона, как в: template <class Class, class Result, Result Class::*Member> struct MyStruct { // ... }; Использование этой структуры как MyStruct<SomeClass, SomeResult, &SomeClass::value> variable работает просто отлично...

Вот функтор, используемый для фильтрации списка объектов. Он должен быть создан с помощью указателя на функцию-член класса объектов, как способ доступа к различным элементам. class Filter_Compare : public Filter { std::string (File::*fun)(); public: Filter_Compare(const char *name, const char *desc, ...

Я часто ловлю себя на том, что использую std::sort, std::max_element, и тому подобное с лямбдой, которая просто вызывает функцию-член std::vector<MyType> vec; // populate... auto m = std::max_element(std::begin(vec), std::end(vec), [](const MyType& a, const MyType& b) { return a.val() <...

C++ разрешает указатели функций и ссылки на функции. Он также разрешаетуказатели на функции-члены . Но допускает ли он ссылки на функции-члены ? Я не могу вывести правила из стандарта, и мне не удалось заставить программу работать с ними. [ указатели на функции-члены ] [ ссылки на функции-члены ]...

классная вещь с C++ заключается в том, что она позволяет создавать переменные типов указателя на член. Наиболее распространенным вариантом использования, по-видимому, является получение указателя на метод: struct foo { int x() { return 5; } }; int (foo::*ptr)() = &foo::x; foo myFoo; cout << (m...

Да, я видел этот вопрос и этот FAQ (неправильная ссылка) этот FAQ, а я еще не понимаю, что ->* и .* значит в C++. Эти страницы предоставляют информацию о операторы (например, перегрузка), но, похоже, не очень хорошо объясняют, что они are. каковы ->* и .* в C++, и когда вам нужно использовать их по ср...