-
- блин, не вкуриваю как прицепить функтор. Вот то что мне нужно: есть testA и testB, хочу вызвать testB.exec() через вызов testA.init, то есть ( testA.init( &testB.exec() ) ). Но вот кроме как через статический метод или статическую функцию не MegaJohn(449 знак., 30.08.2011 12:03, ссылка)
- Получить указатель на метод какого-нибудь объекта не получится, либо метод должен быть статический. Или сделать init, которому передается объект и функция. AlexBi(55 знак., 30.08.2011 12:29)
- Ну здрасьте "нельзя" - можно, конечно - =AlexD=(30.08.2011 12:38 - 12:40, ссылка)
- Можно, только при условии, что не выходишь за рамки одного класса. Если надо это получить в другом классе, то вместе с указателем на метод надо будет передавать и сам объект. - AlexBi(30.08.2011 13:13)
- шаблоны рулят lambda(36 знак., 31.08.2011 03:31, )
- Какие шаблоны? Корневое сообщение кто-то читает, прежде чем отвечать? Функция _beginthreadex() от API операционной системы ждёт указатель на обычную «С-шную» функцию. Которой можно передать void-указатель. Дальше уже в той функции можно этот ReAl(379 знак., 31.08.2011 10:25)
- Черного кобеля не отмоешь добела. А при чем тут c++? reader(74 знак., 01.09.2011 02:09, )
- Какие шаблоны? Корневое сообщение кто-то читает, прежде чем отвечать? Функция _beginthreadex() от API операционной системы ждёт указатель на обычную «С-шную» функцию. Которой можно передать void-указатель. Дальше уже в той функции можно этот ReAl(379 знак., 31.08.2011 10:25)
- шаблоны рулят lambda(36 знак., 31.08.2011 03:31, )
- Можно, только при условии, что не выходишь за рамки одного класса. Если надо это получить в другом классе, то вместе с указателем на метод надо будет передавать и сам объект. - AlexBi(30.08.2011 13:13)
- это то понятно. Об этом и писал в корне. Я предполагал, что есть другие пути. - MegaJohn(30.08.2011 12:34)
- Ну здрасьте "нельзя" - можно, конечно - =AlexD=(30.08.2011 12:38 - 12:40, ссылка)
- testA.init() как описан? Что она должна принимать? - =AlexD=(30.08.2011 12:08)
- выше ссылка на тестовый проект для MSVC2008. Но если у вас его нет, то вот всё[+] MegaJohn(1114 знак., 30.08.2011 12:16)
- Вызов свободной функции - это принципиально? =AlexD=(413 знак., 30.08.2011 12:34)
- Вот что значит - лень студию запускать - наделал ошибок, ладно, вроде все поправил, думаю техника ясна - =AlexD=(30.08.2011 12:36)
- ??? что-то всё равно еггогит [>] - MegaJohn(30.08.2011 12:42, ссылка)
- virtual operator() () = 0; - =AlexD=(30.08.2011 13:04)
- missing type specifier - int assumed. Note: C++ does not support default-int - MegaJohn(30.08.2011 13:08)
- Таки ты заставил меня запустить студию и выгрести все опечатки =AlexD=(476 знак., 30.08.2011 13:16)
- missing type specifier - int assumed. Note: C++ does not support default-int - MegaJohn(30.08.2011 13:08)
- virtual operator() () = 0; - =AlexD=(30.08.2011 13:04)
- ??? что-то всё равно еггогит [>] - MegaJohn(30.08.2011 12:42, ссылка)
- Вот что значит - лень студию запускать - наделал ошибок, ладно, вроде все поправил, думаю техника ясна - =AlexD=(30.08.2011 12:36)
- Вызов свободной функции - это принципиально? =AlexD=(413 знак., 30.08.2011 12:34)
- выше ссылка на тестовый проект для MSVC2008. Но если у вас его нет, то вот всё[+] MegaJohn(1114 знак., 30.08.2011 12:16)
- Получить указатель на метод какого-нибудь объекта не получится, либо метод должен быть статический. Или сделать init, которому передается объект и функция. AlexBi(55 знак., 30.08.2011 12:29)
- А толку? Повторяю -- beginthreadex() ждёт "обычную" функцию и void*-указатель. Она сама -- С-шная функция. Ей можно передать только некую свободную функцию (статическая функция класса годится) и некий указатель, чтобы та функция привела ReAl(153 знак., 12.08.2011 16:40)
- Согласен, в данном случае да. Но в общем, если нужен аналог коллбэк функции, то делегат или функтор очень даже подходит. Решение не на все случат жизни, но в конкретном проекте или библиотеке - самое то. - ango(12.08.2011 18:50)
- Дыу кто бы уродовался с указателями на невесть что, если бы ОС не требовала :-) - ReAl(12.08.2011 20:35)
- Согласен, в данном случае да. Но в общем, если нужен аналог коллбэк функции, то делегат или функтор очень даже подходит. Решение не на все случат жизни, но в конкретном проекте или библиотеке - самое то. - ango(12.08.2011 18:50)
- блин, не вкуриваю как прицепить функтор. Вот то что мне нужно: есть testA и testB, хочу вызвать testB.exec() через вызов testA.init, то есть ( testA.init( &testB.exec() ) ). Но вот кроме как через статический метод или статическую функцию не MegaJohn(449 знак., 30.08.2011 12:03, ссылка)