![]() |
| | |||||||
| Регистрация | Правила | Блоги | Пользователи | Социальные группы | Поиск | Сообщения за день | Все разделы прочитаны |
| |
![]() |
| |
| | #1 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) |
Увлекшись метапрограммированием, начатым в предыдущей теме, я решил написать небольшую библиотеку метафункций. Изначально всё это предназначалось для работы с кортежами, но на самом деле оно применимо к любым шаблонным классам. В том числе возможна совместная работа с библиотекой "Boost.MPL" (но очень осторожная, т.к. в "Бусте" не используются списки типов переменной длины). Отличие от аналогов, в том числе того же "Boost.MPL" состоит, в основном, в том, что результат всех метафункций предсказуем (в "Бусте" он неопределён). Второе отличие — отсутствие теоретических ограничений на количество типов в шаблонах. Есть и новшества: я ввёл новый результат метафункции — шаблон, он же "pattern" (т.к. "template" уже является ключевым словом). Смысл его следует из названия: это не тип ("type") и не значение ("value"), а шаблон класса, который может быть в дальнейшем конкретизирован новыми типами (см. метафункцию "get_pattern"). Это первый вариант библиотеки, не влючающий итераторы. Они появятся в следующей версии. Прошу ознакомиться, кому не лень, и с нетерпением жду отзывов и предложений. Исходники, так же доступны и на GitHub: https://github.com/izvolov/Meta клонировать так: git clone git://github.com/izvolov/Meta.git Последний раз редактировалось niXman; 24.12.2011 в 07:58. Причина: добавил ссылку на GitHub | |
| | ||
| Другие темы раздела | |
| C++ boost::asio cессии Здравствуйте. Хотелось бы узнать ответ на вопрос, который не где не нашол. Сервер реализован на Boost:asio, к нему подключаются клиенты, естественно происходит создание сесии на каждого клиента после подключения и начинается прослушка данных от клиента через async_read_some. И вот вопрос, если.... boost::asio cессии | long > short ? C++ Правда ли что long строго больше чем short ? Или существуют платформы и/или реализации, где long = short?. long > short ? |
| | #41 | |
| niXman Форумчанин Эксперт C++ Регистрация: 09.08.2009
Сообщений: 3,043 Репутация: 2079 (1108) | volovzi, сорри. запраздновался. завтра возвращаюсь в работу. проверю - отпишусь. | |
| | ||
| | #42 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) | niXman, я так и понял .Я тут пока привёл нововведения в приличный вид и залил в репозиторий. Сами деревья лежат в meta/types/(multi-)map. | |
| | ||
| | #43 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) |
Провёл небольшой косметический ремонт того, что уже есть на данный момент. Из-за того, что я всё-таки решил пойти по пути универсальности деревьев (теперь ключ — тоже тип, но обязательно какой-нибудь числовой), в ближайших планах — реализация арифметических операций со всякими метатипами (целыми, рациональными числами и т.д.). | |
| | ||
| | #44 | |
| niXman Форумчанин Эксперт C++ Регистрация: 09.08.2009
Сообщений: 3,043 Репутация: 2079 (1108) | volovzi, привет. убери меня из member`ов. вроде разобрался с gitю хочу попробовать сделать комит не будучи member`ом. | |
| | ||
| | #45 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) | niXman, сделано.
| |
| | ||
| | #46 | |
| niXman Форумчанин Эксперт C++ Регистрация: 09.08.2009
Сообщений: 3,043 Репутация: 2079 (1108) | | |
| | ||
| | #47 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) |
Ура, работает.
| |
| | ||
| | #48 | |
| niXman Форумчанин Эксперт C++ Регистрация: 09.08.2009
Сообщений: 3,043 Репутация: 2079 (1108) |
хе-хе ![]() все, проще некуда. я постепенно буду тесты пописывать. по возможности. у тебя есть еще планы по доработке/развитию либы? | |
| | ||
| | #49 | |
| volovzi Форумчанин Регистрация: 14.03.2010 Адрес: Москва
Сообщений: 484 Репутация: 239 (139) | niXman, отлично. Я тогда посмотрю на твои тесты и буду параллельно писать по аналогии. Можно будет распределить метафункции, чтоб одно и то же не делать. Ближайшие планы пока те же: арифметика со всякими метатипами. А есть какие-нибудь предложения? | |
| | ||
| После регистрации реклама в сообщениях будет скрыта | |
| | #50 | |
| niXman Форумчанин Эксперт C++ Регистрация: 09.08.2009
Сообщений: 3,043 Репутация: 2079 (1108) | давай так: в директории tests создаем поддиректорию с именем тестируемого шаблона. (tests/at, к примеру) в ней, файл main.cpp в котором и будет реализован сам тест. тот кто создал директорию - тот и пишет этот тест. что скажешь? чтоб не тащить в тесты boost.test, я закожу инфрастуктуру тестов в tests/common/tests.hpp. согласуем за и против, и тогда начнем писать тесты. мысли? сейчас, на сколько я помню, нет контейнера последовательностей, типа mpl::vector<> ? и алгоритмов недостает. | |
| | ||
![]() |
| Похожие темы | |
| Тема | Автор |
| C++ Builder библиотека для png подскажите пожалуйста, где можно скачать библиотеку для png формата, для использования png картинок в builder6 | 1rop |
| Qt Библиотека QT Linux X11 и библиотека QT Embedded Linux одно ито же??? Вот стал скачивать эти библиотеки и вижу - у них размер одинаковый......да и ссылка одна и та же..... Это одно и тоже ? а в чём прикол??? зачем разные названия?))) и ещё тогда вопрос... тогда получается что для сборки под Embedded Linux в configure нужно вписывать -embedded а в сборке под... | Racot |
| C# для начинающих Библиотека Подскажите библиотеку на С-шарпе, которая рисует дерево... | Daniel58 |
| Delphi и базы данных БД библиотека Имеется таблица , с полями датаВыдачи, датаВозврата. определяю Cколько дней до возврата: DateDiff("d";Date();) функция выдает число оставшихся дней до возврата. Как сделать чтоб при отрицательном значении строка из таблицы выдача копировалась в другую таблицу ? | Lord_Rufus |
| С++ для начинающих Библиотека Вот такая проблема - задали сделать библиотеку. Для этого нужно: сам исходник программы, header.h файл и файл реализации,например MyLibrary.cpp, в котором нужно подключить наш header.h . Сама прога у меня есть , а вот нужны header.h и MyLibrary.cpp. Вот прога (2 в 1) 1-ая прога - поиск элемента... | sanya93 |
| Опции темы | |
| |
| |