|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
Библиотека метапрограммирования10.12.2011, 15:08. Показов 7496. Ответов 54
Метки нет (Все метки)
Увлекшись метапрограммированием, начатым в предыдущей теме, я решил написать небольшую библиотеку метафункций.
Изначально всё это предназначалось для работы с кортежами, но на самом деле оно применимо к любым шаблонным классам. В том числе возможна совместная работа с библиотекой "Boost.MPL" (но очень осторожная, т.к. в "Бусте" не используются списки типов переменной длины). Отличие от аналогов, в том числе того же "Boost.MPL" состоит, в основном, в том, что результат всех метафункций предсказуем (в "Бусте" он неопределён). Второе отличие — отсутствие теоретических ограничений на количество типов в шаблонах. Есть и новшества: я ввёл новый результат метафункции — шаблон, он же "pattern" (т.к. "template" уже является ключевым словом). Смысл его следует из названия: это не тип ("type") и не значение ("value"), а шаблон класса, который может быть в дальнейшем конкретизирован новыми типами (см. метафункцию "get_pattern"). Это первый вариант библиотеки, не влючающий итераторы. Они появятся в следующей версии. Прошу ознакомиться, кому не лень, и с нетерпением жду отзывов и предложений. Исходники, так же доступны и на GitHub: https://github.com/izvolov/Meta клонировать так: git clone git://github.com/izvolov/Meta.git
6
|
|
| 10.12.2011, 15:08 | |
|
Ответы с готовыми решениями:
54
Применение метапрограммирования Паттерны метапрограммирования шаблонов Дорожная библиотека + основная библиотека процессов |
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|||||||||
| 24.12.2011, 01:31 [ТС] | |||||||||
|
Я над этим думаю. Наверное, в конце концов так и сделаю. Когда пойму, как.
.Кстати, вот ещё одна идея родилась: сделать метафункции для работы с деревом "методами" этого дерева. То есть синтаксис будет такой:
P.S. Если есть ещё какие-нибудь замечания, буду рад выслушать. Добавлено через 8 минут
0
|
|||||||||
|
|
|||
| 24.12.2011, 02:10 | |||
|
Добавлено через 3 минуты я вот еще о чем подумал... не плохо бы для всего этого дела наваять тесты и экзамплы ![]() Добавлено через 1 минуту Добавлено через 3 минуты минутку.. я так понял, что твой map позволяет в качестве ключа использовать только целые. какой смысл? %)
0
|
|||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|||||
| 24.12.2011, 02:19 [ТС] | |||||
. Разве что на новогодних каникулах сподоблюсь.
0
|
|||||
|
|
||||||
| 24.12.2011, 08:48 | ||||||
|
конечно, я понимаю что писать экзамплы+доку+тесты когда уже либа написана и в ней куча шаблонов - грустно. по этому и предлагаю это делать для каждого шаблона еще на стадии его программирования. к тому же, это упростит написание и тестирование самого шаблона. но это имхо, конечно. и хозяин - барин, естественно.
0
|
||||||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|||||
| 24.12.2011, 12:58 [ТС] | |||||
А с документацией — как раз наоборот. Поскольку библиотека ещё только на ранней стадии, в ней может многое поменяться. И потом будет накладно исправлять, помимо самого кода, ещё и документацию.
0
|
|||||
|
|
||||||
| 24.12.2011, 13:15 | ||||||
![]() ![]() Добавлено через 42 секунды volovzi, в общем думай... с тестами могу подсобить, если в мемберы добавишь
0
|
||||||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|||
| 24.12.2011, 13:46 [ТС] | |||
|
Так что либо как-то назначать типам числовые идентификаторы, либо оставлять пока что только целочисленные ключи.
0
|
|||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 24.12.2011, 14:31 [ТС] | |
|
niXman, а разве публичный репозиторий не все могут редактировать? Вроде, для этого ничего специально делать не нужно.
0
|
|
|
|
||
| 25.12.2011, 10:56 | ||
|
сейчас попробую. Добавлено через 20 часов 15 минут я в общем-то плохо с git знаком. но то что нагуглил, не позволило ничего закоммитить.
0
|
||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 25.12.2011, 12:59 [ТС] | |
|
niXman, а почему не получилось? Что говорят?
0
|
|
|
|
|
| 25.12.2011, 13:10 | |
|
volovzi, однозначно ответить затрудняюсь потому, что гуглил примеры работы с git. потом пытался их использовать. но так ничего и не получилось %)
возможно, либо примеры были не правильные, либо я что-то не так делал, либо для коммита нужно иметь права. Добавлено через 31 секунду приведи ты свои команды. только без паролей, если они есть.
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
||||||
| 25.12.2011, 13:20 [ТС] | ||||||
|
Как-то так:
0
|
||||||
|
|
|||
| 25.12.2011, 13:51 | |||
|
сделал в точности как ты показал, за исключением url`а.
вывод:
но при попытке его использовать, получаю:
0
|
|||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 25.12.2011, 14:56 [ТС] | |
|
niXman, а, всё-таки надо сначала ответвиться, а потом уже делать запрос на присоединение к основной ветке.
А графические приложения не пробовал? У тебя какая система? Добавлено через 18 минут Вот здесь ещё неплохо написано: http://habrahabr.ru/blogs/Git/... nt_4147240
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 28.12.2011, 21:05 [ТС] | |
|
Ну чё?
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
| 30.12.2011, 01:48 | |
|
volovzi, насколько я понял, нужно зайти в админку репы и добавить niXman'а в collaborators.
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 31.12.2011, 13:43 [ТС] | |
|
CyBOSSeR, я сначала тоже так думал, но увидел справа словосочетание "Private Collaborators" и решил, что это тоже какая-то платная штука, как и закрытые репозитории.
Добавил Никсмана. Но, насколько я понимаю, он в отъезде, поэтому не отвечает. Добавлено через 11 часов 27 минут Ура! Незамутнённый утренний пост(и пред-)праздничный разум творит чудеса. Наконец-то сделал удаление значения по ключу. Пожалуй, это самая сложная на данный момент метафункция в библиотеке. Страшно представить, что будет в балансировке.
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 03.01.2012, 14:24 [ТС] | |
|
С радостью сообщаю, что создание двоичного дерева поиска времени компиляции завершено. Получившаяся структура данных — полноценное дерево АВЛ с соответствующими алгоритмическими характеристиками.
Балансировку оказалось сделать легче, чем я ожидал, в частности, выяснилось, что за высотами ветвей не обязательно следить вручную — узлы могут определять свою высоту автоматически. Далее последуют усовершенствования, реструктуризации и оптимизации, но то, что оно уже работает — факт. В репозитории пока нет, но скоро будет.
0
|
|
| 03.01.2012, 14:24 | |
|
Помогаю со студенческими работами здесь
40
Библиотека QT Linux X11 и библиотека QT Embedded Linux одно ито же??? Библиотека Библиотека библиотека GD БД Библиотека Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|