Форум программистов, компьютерный форум 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 устраняю утечки - Если приложение остановлено штатно, то все утечки я устранил - Если останавливаю с помощью ctrl-c, valgrind рапортует об куче неосвобожденной памяти. Скорее всего, нужно в деструкторах освободить руками. http://www.cyberforum.ru/cpp/thread1788295.html
C++ Runtime error при открытии lua-скрипта
Всем доброго времени суток. Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру. Код немного условный, потому что инициализация, подключение библиотек и деинициализация script_LuaState вынесены в отдельные функции. script_LuaState = luaL_newstate(); luaL_openlibs(script_LuaState);
С++ идиомы - обсуждение C++
Тема создана для вопросов и обсуждений С++ идиом
C++ Операции с двоичными деревьями поиска http://www.cyberforum.ru/cpp/thread1788181.html
Добрый день. Пожалуйста, помогите с написанием программы: Разработать программу, реализующую следующий набор операций с двоичными деревьями поиска: поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений построчный вывод дерева в наглядном виде с помощью...
C++ С++ идиомы Перевод статей 1 и 2. Будет постепенно обновляться. Желающие внести вклад могут писать в ЛС. Тема открыта, просьба добавлять только посты с переводом, обсуждение здесь Переведенные идиомы: self-assignment in an assignment operator Scope Guard Shrink-to-fit Checked delete Pointer To Implementation подробнее

Показать сообщение отдельно
usertemplar
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 8
05.08.2016, 23:13     Variadic templates, или variadic constructor в шаблоне, или прочие извращения
Здравствуйте.

Есть такое
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 конструируется не в конструкторе обертки. Увы, изменять это слишком затратно, ввиду того, что обертка имеет свою иерархию наследования, все это в ней крутится вертится с виртуальными функциями, полиморфизмом и прочим.
Т.е. этот пакет параметров, которые мы должны передать в конструктор объекта надо еще где-нибудь сохранить, чтобы позже использовать. Таскать пакет по ф-циям тоже не выйдет, ибо верхний базовый класс обертки - библиотечный. Вскрывать и разбираться в библиотеке - еще дольше.

В общем извините за стену текста, идей пока никаких, прошу помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru