![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
sergioK |
![]()
Сообщение
#1
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Либа собсвенно крос платформенная, это все знают, у меня собсвенно вопрос
Если мне этот крос не нужен, то есть ли смысл в применении буста? (кроме smart pointers ) т,е есть ли у него минусы/дырки и в чем ? С С++ знаком но не гуру, последнии 8 лет пишу на яве, С/С+ пользую now and then . |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
sergioK, собственно, судя по всему, тебе, собственно, буст не нужен )
|
|
|
sergioK |
![]()
Сообщение
#3
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
sergioK, не вижу ни какого холивара, а про судью язык придержи.
|
|
|
sergioK |
![]()
Сообщение
#5
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Хотелось бы услышать ответ по теме, пока что это второй пост в никуда, |
|
|
ViGOur |
![]()
Сообщение
#6
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
sergioK, тебе же сказали, лучше не использовать буст только для смарт поинтеров.
Если бы ты как и говоришь 8 лет писал бы серьёзно на Java, то таких вопросов бы не возникало. ![]() А если все же возникает, то вот тебе вопрос на засыпку, зачем собственно в Java smart pointers? |
|
|
sergioK |
![]()
Сообщение
#7
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
На засыпку отвечаю - проверяеться вариант замены яве + ni на буст, И соотвественно вопрос вопрос о плюсах /минусах буста ответа на который Я не увидел , нету довольных/не довольных ? не было ни у кого разных ситуаций ? |
|
|
Влад |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: ![]() ![]() ![]() |
В применении буста есть как плюсы, так и минусы, - даже независимо от кроссплатформенности.
Первый и главный плюс: Boost - это очень и очень большой набор готовых универсальных решений типичных программерских задач, причем именно готовых - т.е. в подавляющем большинстве хорошо отлаженных и работающих "из коробки", сразу, без допиливания напильником. Второй плюс: буст можно использовать как целиком, так и частично - сообразно потребностям. Теперь добавлю немного дегтя в эту бочку меда: о минусах :-) Во-первых, буст требует определенной культуры программирования на C++, я бы выразился так: нужно "мыслить в стиле C++, а не в стиле С с классами". Хотя это, конечно, зависит от опыта и нарабатывается постепенно. Во-вторых, буст неоднороден - он никогда не писался одним человеком или даже одним коллективом, это довольно пестрое собрание разнородных библиотек от независимых авторов; есть вещи, написанные хорошо, а есть.... Впрочем, если не заглядывать "под капот", а просто использовать, то ничего страшного :-) |
|
|
ViGOur |
![]()
Сообщение
#9
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
проверяеться вариант замены яве + ni на буст java.nio?И соотвественно вопрос вопрос о плюсах /минусах буста ответа на который Я не увидел , Единственный минус буста в том, что для работы с ним недостаточно быть просто знакомым с С\С++, порой нужно знать на отлично С++ и STL, иначе использование Boost превратится в шаманство...
нету довольных/не довольных ? не было ни у кого разных ситуаций ? |
|
|
Iron Bug |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
использую буст много лет (ещё с каких-то там 20-х версий). отличная библиотека для профессиональной разработки на С++.
причём буст - не просто кроссплатформенная библиотека. фактически, это тестовый полигон стандартизации С++. то есть то, что разрабатывается в бусте, потом частично переходит в стандартные библиотеки С++. и эти самые поинтеры, кстати, уже в стандарте. так что ради них не имеет смысла юзать буст. auto_ptr был уже давно, а shared_ptr и weak_ptr добавили в последний стандарт год назад. так что их уже обязаны поддерживать все компиляторы стандарта С++11. и использование буста только усложнит задачу: нужно будет разграничивать поинтеры буста и стандартных библиотек. конечно, буст имеет и другие, куда более продвинутые поинтеры, но для того, кто не занимается С++ профессионально, они вряд ли пригодятся. а так, буст имеет очень мощные средства, которые хорошо отлажены и очень тщательно оптимизированы. однако, он не рассчитан на новичков. профессионал С++ его оценит. новичок только запутается и наломает дров. я буст применяю в любой, даже самой мелкой тестовой программке. но это требует некоторого опыта работы с ним и отличного знания С++. я в нём использую межпроцессное взаимодействие, работу с регулярными выражениями, потоки (чтобы не заморачиваться с ними под разные системы, у меня кроссплатформа), математические библиотеки, функции работы со временем, контейнеры, работу с файловой системой, сигналы, юнит-тесты. ну и так, по мелочи ещё разные отдельные библиотеки буста иногда. Сообщение отредактировал Iron Bug - 17.9.2012, 12:06 |
|
|
igor_bogomolov |
![]()
Сообщение
#11
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#12
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
я в нём использую ... работу с регулярными выражениями, потоки ... так ведь это теперь тоже в новый стандарт перекачевало. Или компиляторы еще плохо этот функционал поддерживают?я не слышала, чтобы регулярные выражения перекочёвывали в стандарт. там слишком жирная библиотека, на самом деле. и она ещё не утрясена, как следует. насчёт потоков - у венды вроде позикса нет. может, они там что-то и сделали, но я тоже такого факта не припоминаю. |
|
|
igor_bogomolov |
![]()
Сообщение
#13
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
я не слышала, чтобы регулярные выражения перекочёвывали в стандарт. там слишком жирная библиотека, на самом деле. и она ещё не утрясена, как следует. насчёт потоков - у венды вроде позикса нет. может, они там что-то и сделали, но я тоже такого факта не припоминаю. Сам то я на плюсах давно не пишу, плотно в ядро линукса перелез, но стараюсь следить за событиями. И имею сам стандарт.boost::threads почти в полном объеме перекачевала в новый стандарт. В связи с этим, например, появилось новое ключевое слово thread_local. В stl появились потоко безопасные контейнеры. Глава 30 нового стандарта полностью посвещана потокам (30 Thread support library). Регулярные выражения описаны в разделе 28 (Regular expressions library). Тут я правда не могу провести никаких паралелей с boost. Не знаю в каком объёме эта библиотека была стандартизирована. В википедии можно немного про регулярные выражения почитать. Т.е. в стандарте всё это есть, но вот как дело обстоит с поддержкой этих возможностей в компиляторах, я не знаю. P.S. Еще раз про потоки в с++11. Сделаю небольшую рекламу. Есть замечательная книга по этому поводу. |
|
|
Алексей1153 |
![]()
Сообщение
#14
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
sergioK, окай, как выучусь на судью твоего уровня, обсудим
![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#15
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, не развивай это направление
|
|
|
sergioK |
![]()
Сообщение
#16
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Для меня пока главный недостаток - отсуствие вменяемой документации
![]() как собвено компилить ? пока нашел такое, bjam.exe --toolset=gcc stage, потом говорю Сode Blocks добавить либы к линкеру (могу и руками но лень) мне бы хотелось сказать бижаму что бы разбил все по папкам т,е, chrono в свою папку , regex в свою , signal в свою и т,д,( так потом удобней искать/менять ) вопрос как это реально сделать? если реально ? и еще как компилить отдельную либу т,е, после bjam.exe --toolset=gcc(ну или другой компилятор) что потом где его найти (доку читал видимо плохо ![]() ну и так на всякий случай - тролей не кормлю, желающим покусаться, могу указать на более интересные сайты , |
|
|
Алексей1153 |
![]()
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
sergioK, Я не тролль, если что. Весёлые трёхбуквенные сайты тоже знаю и могу показать
![]() |
|
|
Влад |
![]()
Сообщение
#18
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: ![]() ![]() ![]() |
Для меня пока главный недостаток - отсуствие вменяемой документации. Вот тут ты, пожалуй, не прав. Документация у буста очень и очень неплохая - в сравнении с другими бесплатными же проектами. (Давно известно, что при разработке бесплатного/freeware проекта программистам гораздо интереснее писать код, а не документацию к нему :-) А поскольку проект делается just for fun - то и заставить их писать доки невозможно.) Просто буст рассчитана на более профессиональный контингент, чем программисты, "пишущие мышкой". Поэтому подход в стиле "Все-что-угодно за 21 день" - "Выберите компонент, перетащите его на форму, щелкните мышкой там, теперь тут, нажмите F5 - поздравляем! вы выполнили вашу первую программу!" - не работает. Читай доки на сайте. Там есть целый раздел "как собрать". Сообщение отредактировал Влад - 19.9.2012, 9:09 |
|
|
AD |
![]()
Сообщение
#19
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Для меня пока главный недостаток - отсуствие вменяемой документации ![]() По-моему, ты ошибаешься, как раз boost очень хорошую документацию имеет. Просто разбираться с ним придется не за неделю. Правильно подметили, что это инструмент для экспериментирования разных фишек, которые постепенно переходят в стандарт! Регулярные выражения описаны в разделе 28 (Regular expressions library). Тут я правда не могу провести никаких паралелей с boost. Не знаю в каком объёме эта библиотека была стандартизирована. По-моему, регулярки - через чур крупный отдельный раздел, чтобы перкочевывать прямо в язык С++! ![]() |
|
|
sergioK |
![]()
Сообщение
#20
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Регулярные выражения описаны в разделе 28 (Regular expressions library). Тут я правда не могу провести никаких паралелей с boost. Не знаю в каком объёме эта библиотека была стандартизирована. По-моему, регулярки - через чур крупный отдельный раздел, чтобы перкочевывать прямо в язык С++! ![]() Да Я тоже так считаю, но они(RE) почти есть во всех языках есть, так почему бы им не быть в С++ ? Vlad , Я ж смайлик поставил, то ирония была , Все что ты и AD говорите правильно и очевидно, Я еще в 96году себе определил что 21день это утопия, То что читать доку это понятно,то что не все сразу тоже хотя и хочеться ![]() Kонфигурация/сборка не всегда просто и а яве тоже самое и на чем угодно, но это лирика, а по сути никто сам не собирал ?? |
|
|
igor_bogomolov |
![]()
Сообщение
#21
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#22
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Для меня пока главный недостаток - отсуствие вменяемой документации ![]() как собвено компилить ? пока нашел такое, bjam.exe --toolset=gcc stage, потом говорю Сode Blocks добавить либы к линкеру (могу и руками но лень) мне бы хотелось сказать бижаму что бы разбил все по папкам т,е, chrono в свою папку , regex в свою , signal в свою и т,д,( так потом удобней искать/менять ) вопрос как это реально сделать? если реально ? и еще как компилить отдельную либу т,е, после bjam.exe --toolset=gcc(ну или другой компилятор) что потом где его найти (доку читал видимо плохо ![]() ну и так на всякий случай - тролей не кормлю, желающим покусаться, могу указать на более интересные сайты , документация у буста очень хорошая и подробная. так что тут возмущения не по делу. bjam - инструмент со своим языком описания файлов для сборок Boost Build v2. к нему тоже есть подробнейшая документация. сделать там можно что угодно, но придётся править файлы для сборки библиотек буста. собственно, совершенно непонятна идея разделения библиотек по папкам. простота хранения всех библиотек в одной папке в том, что потом просто прописываешь единый путь поиска для компилятора и не паришься. как ты собираешься это делать, если у тебя стопицот библиотек будут лежать в разных папках? тем более, что они могут ссылаться друг на друга. а по вышеуказанной команде все скомпилённые библиотеки bjam помещает в папку stage. и искать их не так уж сложно: они все там. для другого места есть опция --stagedir (см. банальный --help у самого bjam, там всё написано, только запускать его надо в корне бустовских сорцов). отдельная либа компилится опцией --with-XXX или --without-XXX(кстати, bjam это тоже в собственном хэлпе выдаёт). а вообще, по всем вопросам сборки нужно смотреть документацию сборки буста: сборка буста под вендой сборка буста под никсами Сообщение отредактировал Iron Bug - 20.9.2012, 9:41 |
|
|
Влад |
![]()
Сообщение
#23
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: ![]() ![]() ![]() |
Ну почему же? Я, например, собирал буст - и не один раз, начиная с версии чуть ли не 1.30.... Сборка проходила без проблем - правда, честно скажу, времени занимала изрядно... в двух конфигурация - debug и release. Может, конечно, дело в машине - PIV 3 GHz 1 GB.....
|
|
|
Iron Bug |
![]()
Сообщение
#24
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Ну почему же? Я, например, собирал буст - и не один раз, начиная с версии чуть ли не 1.30.... Сборка проходила без проблем - правда, честно скажу, времени занимала изрядно... в двух конфигурация - debug и release. Может, конечно, дело в машине - PIV 3 GHz 1 GB..... чтобы буст собирался быстрее, ставьте в вызов bjam опцию распараллеливания -jN , где N - количество одновременно запущенных процессов (как правило, количество ядер проца или процов). будет собираться значительно шустрее. |
|
|
sergioK |
![]()
Сообщение
#25
|
Новичок Группа: Неактивирован Сообщений: 7 Регистрация: 16.9.2012 Пользователь №: 3521 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Cо сборкой понятно пока то что хотел сделал,
всем спасибо, |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.4.2025, 8:48 |