Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

Метопрограммирование и библиотека Boost

11.07.2010, 22:49. Показов 3334. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читал про новый стандарт С++0x и наткнулся на библиотеку Boost. Прочитал в Вики про метопрограммирование и читаю про Boost. Возникли некоторые вопросы.

1) Так ли важно метапрограммирование на том же С++, часто ли оно применяется и намного ли тяжелее, чем стандартное программирование на С++?
2) Если кто-то работает с метапрограммированием - не могли бы скинуть какой-нибудь небольшой пример?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.07.2010, 22:49
Ответы с готовыми решениями:

библиотека boost
Здравствуйте :) столкнулся с проблемой, решил поставить библиотеки boost, так как в будущем планирую много работать со строками. ...

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в работе. Поставил так: sudo apt-get install boostlib-all-dev ...

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include <boost/log/trivial.hpp> int main(int, char*) { ...

13
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
11.07.2010, 23:08
Цитата Сообщение от Lavroff Посмотреть сообщение
Так ли важно метапрограммирование на том же С++, часто ли оно применяется и намного ли тяжелее, чем стандартное программирование на С++?
Если кто-то работает с метапрограммированием - не могли бы скинуть какой-нибудь небольшой пример?
Шаблоны являются механизмом "метапрограммирования" на C++, т.к. фактически описывают правила генерации семантически схожих функций, структур, классов.
Цитата Сообщение от Lavroff Посмотреть сообщение
Читал про новый стандарт С++0x
По-моему, кроме шаблонов с переменным числом аргументов, новый стандарт ничего серьезного из "метапрограммирования" не предлагает, поправь, если ошибаюсь.
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
11.07.2010, 23:11  [ТС]
CyBOSSeR, Ну дык, я и не говорю, что там много написано) Просто заинтересовало само по себе.
Кстати. По поводу библиотеки Boost. Стоит ли использовать впринципе?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 05:39
Цитата Сообщение от Lavroff Посмотреть сообщение
Стоит ли использовать впринципе?
Естественно. Если нужно решить задачу, которую нельзя выполнить средствами стандартной библиотеки языка и которую можно решить средствами boost, а велосипеды изобретать неохота.
1
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
12.07.2010, 11:28
Лучший ответ Сообщение было отмечено ForEveR как решение

Решение

Boost - полезная библиотека, которую разрабатывают лучшие специалисты по С++. Часть вещей оттуда со временем переползает в стандарт. Так что если видишь, что там реализовано что-то, что нужно в твоей задаче, имеет смысл задействовать Boost. Если какая-то вещь в принципе по теме подходит, но кажется чересчур громоздкой и неудобной, не стесняйся делать своё.

Так ли важно метапрограммирование на том же С++, часто ли оно применяется и намного ли тяжелее, чем стандартное программирование на С++?
Метапрограммирование - штука специфическая, так что по мере того, как твои навыки растут, ты заметишь, что польза всё больше и больше. В принципе, оно тесно переплетается с "обычным программированием на С++" и делает его более удобным и надёжным. Насчёт "тяжелее" сказать трудно, зависит от человека, но оно определённо основано на других принципах.

Если ты пользуешься Boost, это ещё не значит, что ты занимаешься метапрограммированием. Оно применялось для написания самой библиотеки, а ты пожинаешь плоды тех усилий. Хотя, конечно, никто не воспрещает его применять, да и в самой библиотеке есть много полезных штук для облегчения метапрограммирования.
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.07.2010, 16:29  [ТС]
Nick Alte, Если пользоваться Boost, то желательно прочитать всю документацию по нему?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 16:34
Цитата Сообщение от Lavroff Посмотреть сообщение
Nick Alte, Если пользоваться Boost, то желательно прочитать всю документацию по нему?
BOOST - это набор библиотек, причем довольно обширный, поэтому нет смысла изучать все библиотеки BOOST'a (а если не знаешь английского - тем более, так как большая ее часть до сих пор не переведена на великий и могучий). ИМХО, следует изучить только те инструменты, которые тебе понадобятся для конкретной задачи.
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.07.2010, 16:36  [ТС]
Nameless One, Но вот вопрос. Много ли таких задач из не высокого уровня сложности для которых не предусмотрено решение в стандартной библиотеке, зато предусмотрено в Boost?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 16:42
Мне пока встретилась только одна.
Делал недавно лабу по C++ в универе: нужно было написать аналог команды cat. Основная сложность состояла в разборе аргументов командной строки (что, в общем-то, можно было бы сделать и самому). Т.к. тема была - работа с файлами, я решил не мучатья и нагуглил про библиотеку boost:: program_options, с помощью которой за вечер написал саму программу.
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.07.2010, 16:47  [ТС]
Nameless One, А не могли бы скинуть этот пример? Или сюда или в лс. + что за команда cat?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 17:04
Вот описание команды cat. В силу особенностей Windows, удалось реализовать только небольшую часть функционала, а именно копирование и конкатенацию файлов.
Сама программа и исходный код:
cat.rar
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 17:18
ЗЫ. Скомпилить без BOOST не получится
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.07.2010, 17:27  [ТС]
Nameless One, Компилить то компилит. Но как бустовскую либу подключить что-то не врубаю. Делаю все по инструкции...И фиг.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.07.2010, 17:32
Чтобы программа компилилась, тебе сначала нужно скачать и откомпилировать BOOST. Если ты уже это сделал, но lib-библиотека на найдена - значит у тебя либо не прописан путь к lib-файлам в IDE/системе, либо ты компилировал BOOST с неправильными опциями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2010, 17:32
Помогаю со студенческими работами здесь

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов: MinGW 4.5.2 и Visual C++ 2010 Express Edition. Для этого...

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код calculator<proto::terminal<placeholder<0> >::type> const _1; ...

Qt и boost boost::system::generic_category()
Добрый день Не подскажите как настроить Qt на работу с boost? У меня в принципе все работает: умные указатели и тд. Но когда...

boost::geometry::model::box и boost::geometry::area
Здравствуйте! Пытаюсь измерить площадь box'a :D, но не знаю как правильно это сделать. Вот этот код при компиляции выдает кучу ошибок: ...

Дорожная библиотека + основная библиотека процессов
Доброго времени! Пытаюсь совместить в одной модели дорожную библиотеку и библиотеку моделирования процессов следующим образом. По дороге...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru