1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63

Шаблон RAII замены указателя на функцию

12.09.2009, 10:59. Показов 1532. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
шаблон raii замены указателя на фукнцию

допустим имеется набор указателей на функции разных типов и существует потребность временно, локально подменять функцию в указателе:
C++
1
2
3
pf old=set_pf(&new_func);
// может случиться stack unwind
set_pf(old); // должна по любому выполниться перед выходом из функции
чтобы не писать raii класса для каждого типа фукнции и каждой фукнции подменяющей указаетель, как передать в шаблон фукнцию устанавлиювающую новый указатель и тип указателя?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.09.2009, 10:59
Ответы с готовыми решениями:

Шаблон указателя на функцию
Надо создать шаблон, который бы генерировал функцию, вызывающую другую функцию, которую я передал ей в шаблоне. Что - то похожее на это,...

Шаблон указателя на функцию и шаблоны функций
Подскажите пожалуйста, в чём проблема? Не смог разобраться. #include "stdafx.h" #include <iostream> #include...

Как сделать функцию от указателя на класс и указателя на метод?
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

1
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
13.09.2009, 19:11  [ТС]
вроде написал:
C++
1
2
3
4
5
6
7
8
9
10
template<class T,T(*getval)(T)> class stct {
    T old;
    public:
    stct(T ff) throw() { 
        old=getval(ff);
        }
    ~stct() throw() { 
        getval(old);
    }
};
используется как:
C++
1
stct<funtion_type,function_set> l(new_function);
есть идеи как избавиться от function_type в вызове, тк он все равно известен через function_set ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2009, 19:11
Помогаю со студенческими работами здесь

Написать шаблон умного указателя для массива
Добрый день уважаемые! Не могу решить 2 задачи! 1. У вас есть многосвязный список‚ заданный следующим образом: struct...

Зачем передавать в функцию X указатель на callback функцию, если последняя ВНЕШНЯЯ и вызовется БЕЗО ВСЯКОГО УКАЗАТЕЛЯ?
Собсно. То есть ребята, вот пример отсюда: http://www.cplusplus.com/reference/algorithm/count_if/ // count_if example #include...

Передача указателя на шаблонную функцию в другую функцию
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает итераторы для диапазона элементов, указатель...

Шаблон замены для str_replace
$sa = &quot;{2d1d{ 'asd':11,'d2d2':2}}&quot;; print_r(str_replace(array('{2d1d{','}}',&quot;'(.*):&quot;),'', $sa)); Возможно ли применить '(.*):...

Шаблон замены строк матрицы
template &lt;class A&gt; A*obj(int m, int n, A*el) { int i, j, m1, m2; A c; for (j=0; j&lt;m; j++) { for (i=0; i&lt;n; i++) ...


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

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

Новые блоги и статьи
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru