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

Variadic templates, или variadic constructor в шаблоне, или прочие извращения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать ftp клиент через libcurl? http://www.cyberforum.ru/cpp/thread1788904.html
добрый день! подскажите, пожалуйста, как сделать ftp клиент через libcurl? а точнее, мне нужно видеть файлы, находящиеся на сервере. у меня получилось подключиться к своему серверу и залить...
C++ Освобождение памяти после std:bind Что имею: - CentOS - gcc 4.8 - valgrind Что делаю - С помощью valgrind устраняю утечки - Если приложение остановлено штатно, то все утечки я устранил - Если останавливаю с помощью... http://www.cyberforum.ru/cpp/thread1788295.html
C++ Runtime error при открытии lua-скрипта
Всем доброго времени суток. Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру. Код немного условный, потому что инициализация, подключение...
С++ идиомы - обсуждение C++
Тема создана для вопросов и обсуждений С++ идиом
C++ Операции с двоичными деревьями поиска http://www.cyberforum.ru/cpp/thread1788181.html
Добрый день. Пожалуйста, помогите с написанием программы: Разработать программу, реализующую следующий набор операций с двоичными деревьями поиска: поиск вершины с заданным значением ключа с...
C++ С++ идиомы Перевод статей 1 и 2. Будет постепенно обновляться. Желающие внести вклад могут писать в ЛС. Тема открыта, просьба добавлять только посты с переводом, обсуждение здесь Переведенные идиомы:... подробнее

Показать сообщение отдельно
usertemplar
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 8

Variadic templates, или variadic constructor в шаблоне, или прочие извращения - C++

05.08.2016, 23:13. Просмотров 309. Ответов 4
Метки (Все метки)

Здравствуйте.

Есть такое
C++
1
Wrapper<Obj> w;
Wrapper - обертка над объектом того класса, который ему скормят (в данном случае - Obj). Сложная обертка со своей жизнью и делами. Одну из вещей, которая делает эта обертка - конструирует объект класса Obj.
Все было прекрасно, до той поры, пока все классы, которые скармливались этой обертке, имели конструктор по-умолчанию. Но возникла задача оборачивать классы, которые не имеют конструктора по-умолчанию, т.е., чтобы обертка конструировала объект, передавая в его конструктор некоторые данные.

То есть так
C++
1
Wrapper<Obj, o1, o2,...> w;
или так
C++
1
Wrapper<Obj> w(o1,o2,...);
Аргументов (o1, o2,...) может быть, разумеется, сколь угодно, хоть 1, хоть 10, шаблон же пишем.
И вот тут я пришел к вам за помощью. Ситуацию немного омрачает тот факт, что объект класса Obj конструируется не в конструкторе обертки. Увы, изменять это слишком затратно, ввиду того, что обертка имеет свою иерархию наследования, все это в ней крутится вертится с виртуальными функциями, полиморфизмом и прочим.
Т.е. этот пакет параметров, которые мы должны передать в конструктор объекта надо еще где-нибудь сохранить, чтобы позже использовать. Таскать пакет по ф-циям тоже не выйдет, ибо верхний базовый класс обертки - библиотечный. Вскрывать и разбираться в библиотеке - еще дольше.

В общем извините за стену текста, идей пока никаких, прошу помощи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru