Описание тега member-pointers

2 ответа

Что означает аргументы шаблона этого типа - `ClassA<T> T:: * ELEM`?

Я недавно сталкивался с этим кодом в контексте навязчивых списков: template&lt;typename T&gt; struct Node{ T *next; T *prev; Node(): next(nullptr), prev(nullptr){} }; /* * Intrusive doubly-linked-list * * */ template&lt;typename T, Node&lt;T&gt; T::…
1 ответ

Преимущество копирования аргументов класса указателя для членов класса?

У меня есть класс проигрывателя, который использует мой класс DirectX Graphics для создания поверхностей и рисования спрайтов. Я передаю графический класс как указатель на метод класса проигрывателя следующим образом: **game.cpp** m_pPlayer-&gt;Init…
10 ноя '14 в 10:05
1 ответ

Передача указателя для умножения классов на функцию-член

У меня есть следующие занятия: "Integrator.h" #include &lt;vector&gt; #include &lt;array&gt; using namespace std; class Integrator { public: using coord_type = array&lt;double, 3&gt;; protected: void base_integrate_callback(const coord_type, double …
11 сен '16 в 14:13
1 ответ

Почему нельзя приводить Derived T::* в Base T::*?

Предпосылки. Многие функциональные языки поддерживают алгебраические типы данных, которые в некоторой степени можно эмулировать с помощью виртуальных функций и наследования. Наиболее очевидное решение заключается в распределении кучи, поскольку прои…
13 окт '14 в 10:59
2 ответа

Шаблон C++ и наследование с указателем метода

Если я заявляю: class Avoidance : public Schema&lt;std_msgs::String,prog1::Command&gt;{ и я пытаюсь void*(Schema&lt;std_msgs::String,prog1::Command&gt;::*pt)(); pt=&amp;Avoidance::frontBusy; компилятор сообщи мне error: cannot convert ‘void* (Avoida…
2 ответа

У Haskell есть указатели / ссылки на участников записи?

Я могу создавать и ссылаться на относительные указатели для структурирования членов в C++, используя ::*, .*, а также -&gt;* синтаксис вроде: char* fstab_t::*field = &amp;fstab_t::fs_vfstype; my_fstab.*field = ... В Haskell я могу легко создавать вр…
04 фев '12 в 19:54
3 ответа

Уменьшить количество специализаций шаблона при использовании указателя на метод const и неконстантный

У меня есть некоторый шаблон кода, который принимает общий указатель на класс и вызывает функцию или метод. Проблема возникает, если вызываемый метод определен как const, Пример: struct Y {}; struct X { const Y Go() const { return Y{}; } const Y Go2…
14 янв '19 в 16:37
1 ответ

C++ Указатель на член члена

//#define NOT_WORKS #define HOW(X) 0 struct A { }; struct B { A a; }; struct C { B b; }; int main(int argc, char **argv) { A B::*ba = &amp;B::a; // ba is a pointer to B::a member B C::*cb = &amp;C::b; // cb is a pointer to C::b member #ifdef NOT_WOR…
08 май '13 в 10:33
1 ответ

Обратный указатель на элемент данных

Привет я пытаюсь выяснить, является ли законным (по C++) стандарт для вычисления смещения члена класса (для того, чтобы обратить его). class A { public: int a, b, c, d; }; template &lt;typename ParentClass, typename T&gt; ParentClass const * offset_…
1 ответ

Вызов функции через указатель на члена класса

В следующем коде: class foo { public: void foo_function() {}; }; class bar { public: foo foo_member; void bar_function(foo bar::*p_foo) { // what is the corrct sintax for following: this-&gt;*p_foo-&gt;foo_function(); // expression must have a point…
04 мар '15 в 22:09
2 ответа

Оболочка функции-члена с шаблоном с одним аргументом?

Я сделал шаблонную функцию, которая принимает функцию-член в качестве параметра. Однако, поскольку класс должен быть объявлен до того, как его можно будет использовать как часть параметра функции-члена, я должен сделать его отдельным параметром: tem…
16 дек '15 в 23:27
2 ответа

Указатель переменной члена

Для данной структуры: struct foo { void fooFunc(){} int fooVar = 0; }; Я могу создать функцию вызова функции: std::mem_fn( &amp;foo::fooFunc ) так что я могу передать его в другой метод и вызвать его на объекте.Я хочу знать, есть ли подобная оболочк…
04 июн '14 в 12:11
1 ответ

Могу ли я безопасно привести указатель на член const того же типа, но не const?

... хотя указатели на функции-члены являются странными животными? Я кодирую библиотеку для привязки классов C++ к Lua. Мне приходится иметь дело с стиранием типов, вызванным помещением объектов определенных типов в стек Lua (и, следовательно, привед…
1 ответ

Ошибка компиляции: неразрешенный тип перегруженной функции

Я пытаюсь скомпилировать следующее с g++ 4.7.2: template &lt;typename T&gt; struct A { struct B { T t; template&lt;T B::*M&gt; T get() { return this-&gt;*M; } }; B b; T get() { return b.get&lt;&amp;B::t&gt;(); } }; int main() { A&lt;int&gt; a; a.get…
28 мар '13 в 23:16
1 ответ

Проверка на равенство производных шаблонных классов в базовом классе

Это мой первый вопрос на этой платформе. Прошу прощения, если что-то неясно или я не смог спросить соответствующим образом. Код ниже должен компилироваться с любым компилятором C++11. Я пытался свести его к минимуму. Смысл этого кода может быть поте…
2 ответа

Сравнение членов

Я читал о встроенных операторах сравнения. Мне стало интересно, почему нет операторов упорядочения (&lt;, &lt;=, &gt;, &gt;=) для указателей членов. Допустимо сравнивать адреса двух членов экземпляра структуры. http://en.cppreference.com/w/cpp/langu…
08 май '18 в 16:34
3 ответа

Указатель на функцию-член, который возвращает тот же тип указателя на функцию-член

Я хотел бы объявить указатель на функцию-член в C++, который возвращает тот же тип указателя на функцию-член Это не работает: class MyClass { public: typedef FunctionPtr (MyClass::*FunctionPtr)(); } Кто-нибудь знает решение?
02 июл '10 в 20:22
1 ответ

Назначить назначенную функцию указателю на член функции?

Дано void* hello () { cout &lt;&lt; "Test.\n"; } а также struct _table_struct { void *(*hello) (); }; Как мы назначаем функцию (привет) указателю на член функции? Я попробовал это (в основном): _table_struct g_table; _table_struct *g_ptr_table = &am…
11 мар '15 в 00:08
1 ответ

Функторы + указатели на элементы для создания объекта сигнала

У меня есть этот код: // signal supporter parent class signalable {}; template &lt;class typeT = signalable&gt; typedef void (typeT::*trig)(std::string); template &lt;class typeT = signalable&gt; class trigger { private: typeT* instance; typeT::trig…
21 апр '12 в 11:15
1 ответ

Указатель на член класса в качестве параметра шаблона (с типом следующего класса)

Я пытаюсь определить внутренний список как шаблонный класс, который имеет функцию-тип safe container_of. Для этого шаблон должен включать тип контейнера и смещение, где в контейнере может быть найден список (указатель на член). (См. Ниже пример в C)…
18 ноя '14 в 21:07