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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
#1

Есть функция A принимающая прараметром указатель на функцию B. Как вместо последнего вставить тело B? - C++

17.07.2011, 22:13. Просмотров 1001. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
#include <algorithm>
using namespace std;
 
char s[]="abcd";
 
bool IsOdd (char i) {return strchr (s, i);}
 
int main(){
 remove_if (s, s+ 4, IsOdd);
}

ТО есть вместо
C++
1
remove_if (s, s+ 4, IsOdd);
как-то хитро пишется, я не знаю как, но видел тут на форуме проскальзывало по-моему у игоря85, да и в другом месте я краем глаза цеплял, как-то хитро пишется типа
C++
1
remove_if (s, s+ 4, bool(*)()(char i){return strchr (s, i);});
...Ребята, никто не знает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2011, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть функция A принимающая прараметром указатель на функцию B. Как вместо последнего вставить тело B? (C++):

Функция, принимающая указатель и число байт и выделяющая память под указатель - C++
Здравствуйте. Задача легкая, но почему-то завис Нужно написать функцию, принимающую указатель и число байт и выделяющую память под...

Функция, принимающая указатель на переменную и записывающая в нее значение модуля - C++
Написать функцию, которая принимает указатель на переменную и записывает в нее (переменную) модуль самой себя. ребята, что не так? ...

Где ошибка?Функция, принимающая указатель на двумерный массив и рандом чисел - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; void arrprint(float* arr, int m, int n) { ...

Функция, принимающая в качестве параметра функцию - C++
Навести пример функции, которая в качестве параметра принимает функцию

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

12
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
17.07.2011, 22:26 #2
kravam, по-моему ты говоришь про лямбда-выражения из ещё до-конца не принятого стандарта C++0x. Так?

Добавлено через 7 минут
C++
1
remove_if (s, s+ 4, [](char i) -> bool { return strchr (s, i); } );
0
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
17.07.2011, 23:11  [ТС] #3
Нет, это ведь у них только в перспективе, как я понял.

Не по теме:

А чё, компилятор придётся менять?

0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
17.07.2011, 23:13 #4
Ну как-минимум GCC современный это уже поддерживает (с явным указанием стандарта). Возможно VS2010 тоже, но этого у меня нет.
0
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
17.07.2011, 23:14  [ТС] #5
У меня g++
0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
17.07.2011, 23:16 #6
Ну тогда ключ -std=c++0x должен помочь. Однако если заботиться о переносимости, то это не лучший вариант.
0
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
17.07.2011, 23:24  [ТС] #7
Незнаком мой компилятор с таким опциями
0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
17.07.2011, 23:24 #8
Версия какая?
0
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
17.07.2011, 23:28  [ТС] #9
А как узнать? Вообще IDE DEV C++ 4.9.9.2, по-хорошему надо компилятор новый скачать и закинуть вместо старого, но новый неопробованный вот в чём всё дело.
1
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
17.07.2011, 23:31 #10
Цитата Сообщение от kravam Посмотреть сообщение
А как узнать?
Вообще так:
Код
g++ --version
1
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
17.07.2011, 23:32 #11
Я узнаю так:
g++ --version
Но тот наверняка не поддерживает. Лямбды появились, по-моему, только в 4.5
Менять ли компилятор — если хочется использовать новые плюшки, то разумеется. Но пока стандарта окончательно нет, то скорее для ознакомления с плюшками
1
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
17.07.2011, 23:42  [ТС] #12
g++ (GCC) 3.4.2 (mingw-special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Как-нибудь соберусь с духом поменяю, IDE устраивает
0
silent_1991
18.07.2011, 12:13     Есть функция A принимающая прараметром указатель на функцию B. Как вместо последнего вставить тело B?
  #13

Не по теме:

Для справки - cl в 2010 студии тоже их поддерживает))

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2011, 12:13
Привет! Вот еще темы с ответами:

Функция, возвращающая указатель на функцию - C++
Всем привет, Мне нужно создать функцию, которая будет возвращает указатель на функцию. Я создам массив указателей на функцию, присвою...

Как вставить подпись в тело письма - VBA
ребята нужна помощь .. вообще не шарю в VBA .. есть просьба .. наковырял в инете код через который можно отправлять письмо нажатием кнопки...

разница между указатель на функцию и функция возврата указателя? - C++
подскажите пожалуйста очень срочно надо (вопрос на зачет)

Как вставить див-блок в тело компонента - Joomla
Пока что знаю только один способ: отключить в глобальных настройках визуальный редактор и править хтмл-код материала вручную. Но как...


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

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

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