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

Забиндить функцию и параметром-ссылкой не используя С++11 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка parameter pack через функции http://www.cyberforum.ru/cpp/thread1490425.html
Суть - надо напечатать определенный аргумент (допустим третий) с пакета параметров функции. Чего то не соображу как. Вот код:#include <iostream> #include <vector> #include <type_traits> ...
C++ Средства для создания GUI Да, такие темы периодически всплывали. Но последняя более похожая датирована 2010 годом, за пять лет то все могло уже кардинально поменяться. Собственно вопрос, какими средствами создается GUI в... http://www.cyberforum.ru/cpp/thread1489864.html
C++ Прокомментировать код работы с NETBIOS
есть код помогите пожалуйста в нём разобраться (по блочно можете прокоментировать? очень нужно ) #include "windows.h" #include "NB30.h" #define CLIENT_NAME "myclient" #define SERVER_NAME...
C++ Доступ к видеобуферу для перекрытия окон
Здравствуйте. Где то читал, что на компьютере есть видео буфер, с которого все и выводится на экран. И вроде как к этому видео буферу можно получить доступ низкоуровневыми программами, вроде как и...
C++ Изменение параметров изображения в зависимости от положения ползунка (Opencv) http://www.cyberforum.ru/cpp/thread1488530.html
Помогите пожалуйста написать класс, который будет изменять яркость, насыщенность и цветовую гамму изображения в зависимости от положения ползунка
C++ Как прикрутить компилятор к Notepad++? Может вопрос окажется глупым, но всё же В Notepad++ ввожу самый простой код для с++, жму F5 и вылазит табличка( не понятно что в ней выбирать), жму запуск и ничего не происходит. Подскажите как... подробнее

Показать сообщение отдельно
tapochka
40 / 40 / 8
Регистрация: 25.04.2014
Сообщений: 499

Забиндить функцию и параметром-ссылкой не используя С++11 - C++

01.07.2015, 02:48. Просмотров 314. Ответов 1
Метки (Все метки)

здравствуйте, есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct CPack {
void Save(TiXmlElement& element) {}
};
 
int main()
{
TiXmlElement node("TestParams");
std::vector<CPack> vec(10);
std::vector<CPack>::iterator begin = vec.begin();
std::vector<CPack>::iterator end = vec.end();
std::for_each(begin, end, std::bind2nd(std::mem_fun_ref(&CPack::Save), node));
 
return 0;
}
вылетает ошибка, что не можем преобразовать const TiXmlElement в TiXmlElement&...
Реально ли без c++11 сделать for_each корректно работающим?

и второй вопрос: если кто знает, набросайте пожалуйста примерную реализацию std::ref без c++11 или хотя бы совет как это сделать

Добавлено через 2 часа 17 минут
сам отвечаю на свой вопрос, может кому-нибудь будет интересно(хотя вряд ли):
нашел примерно такую реализацию(чуть-чуть изменил, чтобы было более читабельно)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template<typename T>
class ObjectToReference {
public:
    ObjectToReference(T& arg): data(&arg)
    {}
 
    ObjectToReference(const ObjectToReference<T>& arg): data(arg.data)
    {}
 
    operator T&() const
    { 
        return *data; 
    }
 
private:
    T* data;
};
теперь все работает:
C++
1
std::for_each(begin, end, std::bind2nd(std::mem_fun_ref(&CPack::Save), ObjectToReference<TiXmlElement>(node)));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru