Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.96
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
#1

Забиндить функцию с параметрами, чтобы она хранилась в классе и вызывалась без placeholders - C++

30.01.2014, 22:42. Просмотров 3471. Ответов 2
Метки нет (Все метки)

Значит привет всем.
Суть в кратце: хочу забиндить функцию с параметрами (кол-во произвольно), чтобы она хранилась в классе, и чтобы я мог вызвать её без placeholders.
Для наилучшего понимания того что я хочу, ниже следует "псевдо-код" (разумеется не рабочий):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct function_holder {
    auto f;
 
    function_holder( auto f ) : f(f) {}
 
    void call() {
        f();
    }
};
 
void test( int a, int b, int c ) {
    std::cout << __PRETTY_FUNCTION__ << " : " << a << b << c << std::endl;
}
 
int main() {
    auto f = std::bind( test, 1, 2, 3 );
    function_holder fh( f );
}
Верю в то что есть варианты, но из-за отсутствия свободного времени и наличия хорошего интернета мне это не по зубам..
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Забиндить функцию с параметрами, чтобы она хранилась в классе и вызывалась без placeholders (C++):

Как написать программу без оформления (формы), то есть чтобы она не создавала ни одного окна, ни cmd - C++
Не для вируса)

Забиндить функцию и параметром-ссылкой не используя С++11 - C++
здравствуйте, есть такой код: struct CPack { void Save(TiXmlElement&amp; element) {} }; int main() { TiXmlElement...

Модернизируйте функцию factorial так, чтобы она не была рекурсивной - C++
Пример программы: // Вычисляющей сумму, разность и факториал // двух чисел #include &lt;iostream.h&gt; class MyInt { int i; ...

Переписать функцию sqrt, чтобы она работала с большими числами - C++
желательно что бы корень извлекался из строки и возвращался результат в виде строки

Не получается правильно записать указатель, чтобы в основную функцию main (в операторе printf) вызывалась функция podproga - C (СИ)
Не получается правильно записать указатель, чтобы в основную функцию main (в операторе printf) вызывалась функция podproga. Компилятор...

Создать класс Tochka. Реализовать в классе конструктор по умолчанию (без параметров) и с параметрами, ряд методов для работы с точками плоскости - C#
(Создать класс Tochka. Реализовать в классе конструктор по умолчанию (без параметров) и с параметрами, ряд методов для работы с точками...

2
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
31.01.2014, 04:06 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Оно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct function_holder {
    std::function<void()> f;
 
    function_holder( std::function<void()> f_ ) : f(f_) {}
 
    void call() {
        f();
    }
};
 
void test( int a, int b, int c ) {
    std::cout << __PRETTY_FUNCTION__ << " : " << a << b << c << std::endl;
}
 
int main() {
    auto f = std::bind( test, 1, 2, 3 );
    function_holder fh( f );
    fh.call();
}
3
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
31.01.2014, 09:21  [ТС] #3
Да, то что надо. Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 09:21
Привет! Вот еще темы с ответами:

Чтобы функция вызывалась только 1 раз - C#
вот, у меня в коде присутствует вызов функции авторизации, надо сделать чтобы функция авторизации только 1 раз запускалась в начале.

Чтобы страничка PHP вызывалась с index.html - PHP
Здравствуйте, делал и тестировал index.php все работает, и теперь мне надо подкинуть эту страничку к сайту, я ее переименовал some.php. И...

Доопределить функцию, чтобы она стала непрерывной - Математический анализ
Подскажите пожалуйста как нужно решить следующее задание. Мое решение Нужно сделать так, чтобы lim(x-&gt;0)f(x)=f(x), пусть...

Доопределить функцию так, чтобы она стала непрерывной - Математический анализ
если f непрерывна в проколотом окрестности О*(z0) точки z0 то её можно доопределить в точке z0 так, чтобы она стала непрерывной О(z0).


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru