С Новым годом! Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193

bind

20.09.2012, 19:49. Показов 3207. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
хочу нечто такое.

C++
1
application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd, ...);
C++
1
2
3
4
class GameCore {
public:
void engine_handle_cmd(struct android_app* app, int32_t cmd);
}
реально ли ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2012, 19:49
Ответы с готовыми решениями:

asio+bind
при выполнении в bind.hpp и handler_type_requirements.hpp возникают ошибки вот код Server.h #ifndef SERVER_H #define SERVER_H ...

boost::bind
CTCPClient::CTCPClient(std::string _host, int port) :socket_(io_service_) { boost::asio::ip::tcp::endpoint...

Применение вложенных boost::bind
Есть такая задача, носящая, скорее, педагогический, нежели практический характер. В общем, в контейнере ведётся поиск двух соседних...

20
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 20:08
реально

Добавлено через 38 секунд
а для чего гадаешь? возьми и проверь.
ну, или, если влом - доку прочти.
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 20:10  [ТС]
да че-то не получается. щас еще попробую : )
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
20.09.2012, 20:14
C++
1
2
GameCore gc;
application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd, gc, ...);
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 20:19
Цитата Сообщение от ForEveR Посмотреть сообщение
application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd , gc, ...);
ну, тогда уж: application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd , &gc, ...);
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 20:20  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
GameCore gc;
application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd, gc, ...);

&gc так наверное ?

что вместо ... ? _1 ? не катит чет.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 20:27
application_->onAppCmd = boost::bind(&GameCore::engine_handle_cmd , &gc, _1, _2);

Добавлено через 1 минуту
а кто такой onAppCmd ?
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 20:29  [ТС]
такой вариант тоже не катит. _1 _2 _3 тоже пробывал : )

указатель на колбэк.

C++
1
void engine_handle_cmd(struct android_app* app, int32_t cmd);
я его хочу обьявить в классе.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 20:31
покажи декларацию onAppCmd.
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 20:32  [ТС]
C++
1
2
3
4
5
6
7
8
struct android_app {
    ...    
 
    // Fill this in with the function to process main app commands (APP_CMD_*)
    void (*onAppCmd)(struct android_app* app, int32_t cmd);
 
    ...
}
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 20:33
разве я просил показать декларацию метода engine_handle_cmd() ?
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 20:58  [ТС]
в эклипсе хоткеи работают только если английская раскладка включена. : )

поправил сразу.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 21:00
какие хоткие? зачем хоткеи? зачем ты мне об этом говоришь? ты под веществами?
где декларация onAppCmd?
1
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 21:07  [ТС]
быть может ты под веществами ? перейди на первую страницу и прочитай посл. сообщение.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 21:17
ы!
сорри, но его там небыло. первая страница заканчивалась моим сообщением и я перешел на вторую.

boost::bind() возвращает функциональный объект ,который невозможно привести к типу указателю на функцию/метод. используй boost::function.

к тому же, не вижу никакой необходимости в boost::bind() вообще.
вот твое решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
struct type {
   type()
      :mptr(0)
   {}
   
   void m(int, const char*) {}
   
   void(type::*mptr)(int, const char*);
};
 
int main() {
   type t;
   std::cout << t.mptr << std::endl;
   t.mptr = &type::m;
   std::cout << t.mptr << std::endl;
}
http://liveworkspace.org/code/... b893feb7f9
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 22:03  [ТС]
boost::function погляжу, спасибо.

Предложенное тобой решение не подходит т.к. onAppCmd обьявлен в хедере андройда. Ну или я тебя не понял...

Добавлено через 36 минут
C++
1
2
3
4
boost::function2<void, struct android_app*, int32_t> f = boost::function2<void, struct android_app*, int32_t>(
            boost::bind(&GameCore::engine_handle_cmd, this, _1, _2));
 
    application_->onAppCmd = &f;
error: cannot convert 'boost::function2<void, android_app*, int>*' to 'void (*)(android_app*, int32_t) {aka void (*)(android_app*, int)}' in assignment
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 22:05
Цитата Сообщение от Saiberg Посмотреть сообщение
boost::function2<void, struct android_app*, int32_t> f = boost::function2<void, struct android_app*, int32_t>(
* * * * * * boost::bind(&GameCore::engine_handle_cmd , this, _1, _2));
application_->onAppCmd = &f;
ты доку принципиально не читаешь?
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
20.09.2012, 22:06  [ТС]
читал... может не там.. ?

f(0, 1);

так вызывается.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
20.09.2012, 22:10
niXman, Ну только если чтобы не делать копию. Если копия - ок, можно и не указатель.
http://liveworkspace.org/code/... 1bd339394b

Saiberg, Нельзя result от bind-а напрямую присвоить указателю на функцию. boost::function напрямую указателю на функцию тоже нельзя.
Вот тут к примеру было большое обсуждение.http://stackoverflow.com/quest... ion-that-r
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
22.09.2012, 00:38
в одном проекте юзал специальный враппер, который как раз умел принимать функциональные объекты и умел возвращать специальный указатель на свободную функцию, которая каким-то макаром перевызывала переданный объект. там была какая-то платформозависимая магия с соглашениями о вызовах, с выполняемой памятью и прочий мрак. сильно не разбирался.
вот еще что-то похожее быстрим поиском нашлось под винду.
http://www.codeproject.com/Art... to-Non-sta
быть может есть какой-нибудь кроссплатформенный кошерный вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2012, 00:38
Помогаю со студенческими работами здесь

Присвоить значение возвращаемое boost::bind
Добой ночи. Хотелось бы знать, как присвоить значение, возвращаемое boost::bind. Есть класс-функтор : template &lt;typename T&gt; ...

boost::bind прекращение работы программы microsoft optimizing compile
Всем привет! При компилирование выскакивает окошко с надписью &quot;прекращение работы программы microsoft(К) С/C++ optimizing compile&quot;,...

Boost::asio::ip::udp::socket bind а мне нужен не локальный хост
Здравствуйте. Пытаюсь наладить для своих нужд пример #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;boost/asio.hpp&gt; ...

Освобождение памяти после std:bind
Что имею: - CentOS - gcc 4.8 - valgrind Что делаю - С помощью valgrind устраняю утечки - Если приложение остановлено...

Вывод типа, универсальные ссылки, cannot bind lvalue to && и другие
Доброго дня, товарищи. Вот код: Вот отчет компиля: Объясните мне, пожалуйста, где я не прав. Каким образом константный lvalue литерал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru