Здравствуйте, nen777w, Вы писали: N>Ладно... Пррримеррр-р-рр. N>Програмисту Васе нужно написать класс таймера с калбеком.
вот видите — вы активно работаете с колбеками, и у вас есть причина использовать буст. используйте
тут приводят пример корткого и понятного кода работы с вебом — да я и сам буду использовать буст для этого. отлично
я утвердаю немного другое __>>callbackи сами по себе очень кривая архитектурная идея. они сейчас нигде почти не используются, кроме как раз типа audio io
то есть конечно же они используются. я там в школе и универе их активно использовал. просто теперь я понимаю насколько это все хреново выглядит и работает. и в моей жизни колбеки исчезли навсегда
N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами? KP>Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB
Да ладно, я не утверждаю, т.к. с консольным GDB дело иметь не приходилось, но наверняка там есть что то вроде бинда комбинации клавиш и через сколько вызовов сделать остановку, вот как например в SoftIce. Задача должна быть вполне решаема.
Х>>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
L>Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
Здравствуйте, java_coder771, Вы писали:
_>потому что они идиоты _>не помню кто писал "подсадили меня на этот наркотик, теперь приходится посылать лесом все конторы где буст запрещен"(с)
Это уже кристальный снобизм вида: "все кругом — пидорасы, а я — д'Артаньян".
Здравствуйте, kaa.python, Вы писали:
KP>Проблема не в связке BOOST + GDB, а в boost::bind/boost::function + GDB, так как при ее использовании, пройтись по функциям отладчиком становится крайне трудно
Так это и в msvc так. Жутко неудобно Но к счастью у меня обычно получается так, что я знаю, куда попаду. И могу точку останова поставить непосредственно в клиентском коде. Редко когда приходится идти по шагам. Кстати, для gdb можно попробовать какой-то макр изобразить, который даст несколько команд входа в функцию. По моему, там всегда это кол-во фиксированным получается.
Такая же петрушка получится в любом фреймворке — в тех же Qt тоже не сильно удобно ходить по шагам в слоты...
KP>а стеки вызовов начинают напоминать шутки про Java.
Я стек перед использованием немного обрабатываю и выкидываю куски из bind\function\thread\asio — получается более-менее нормально.
Здравствуйте, TimurSPB, Вы писали:
TSP> Экзотические это какие? Если есть компилятор С++ совместимый, то почему нет? Под тот же arm всё работает. Да чего уж там под древний как г. мамонта "Эльбрус 90 микро" и то работает. А на сертификацию отправляется исходный код продукта со всеми зависимостями.
Подтверждаю. Работает и на эльбрусе (это SPARC, если кто не знает) и на MIPSах разношерстных (32 и 64 бит) и на ARM. Но, конечно, не все библиотеки буста, мы просто выделили необходимый минимум, который может функционировать на всех наших платформах. Зафиксировали версию. Используем. Полет нормальный 3 года уже.
Мысли вслух по теме:
Насчет багов тут говорили. Да, баги были. Исправлялись самостоятельно. Времени заняло немного. Примерно неделя на 3 года использования.
Насчет велосипедов. Раньше был набор библиотек чисто наших, старых. Некоторые из них дублировали нынешний функционал буста. Перечислю проблемы, которые возникли и привели в конечном итоге к переходу на буст.
1) Не очень хорошая документация. (в условиях сжатых сроков максимум чего можно было ожидать от разработчиков — комментарии в коде)
2) Заточка под конкретные версии компиляторов (после обновления окружения начались проблемы)
3) Скрытые особенности, недоработки и т.п. (Если разработчик конкретной либы один — мог забыть, его могли срочно перевести на другие работы, он мог уволиться т.д. Следовательно никто больше про эти особенности не знает.).
4) Плохая масштабируемость на новые задачи. Приведу пример. Была самописная библиотека для работы с БД. Все ей пользовались. В один прекрасный момент возникла необходимость использовать notify, а библиотека этот функционал не поддерживала. (Да я знаю, что в бусте нет БД — это просто пример)
В целом я не хочу сказать, что буст надо всегда использовать. Просто для нас он стал хорошей альтернативой нашей базовой библиотеке.
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>Здравствуйте, Abyx, Вы писали:
A>>Здравствуйте, Uzumaki Naruto, Вы писали:
UN>>>Обычно из boost вырезают нужные куски не морочат голову... Засунь boost на тостер — а я поржу х)
A>>boost.mpl или boost.preprocessor? A>>не забывайте, некоторые вещи не генерят кода вообще.
A>>scoped_ptr<T> размером с T* ?
A>>rtfm.
UN>Ты засунь на uclinux
что, uclinux такой особенный что там для struct foo { T* x; };
sizeof(foo) > sizeof(T*) ?
Здравствуйте, __kot2, Вы писали:
__>нужно знать ответ на простой вопрос: конкретно он зачем нужен? если на него ответа нет, то и делать этого не стоит.
а зачем нужен С++ Вы тоже задаете вопрос? (есть же Си) а стандартная библиотека зачем нужна? (мы же ее сами можем написать)
Здравствуйте, nen777w, Вы писали:
Х>>>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
L>>Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
N>WOW Круто, а где это Вы работаете если не секрет?
Ситуация на самом деле еще смешнее — в то время, когда он у нас работал, буст у нас был запрещен
Здравствуйте, michae1, Вы писали:
M>Здравствуйте, Abyx, Вы писали:
A>>Здравствуйте, mike_rs, Вы писали:
_>>>когда буст станет стандартом, как stl,
A>>часть библиотек буста использована в стантартной библиотеке C++11
M>Если не ошибаюсь, эти части были неслабо переписаны (те же shared_ptr)
понятное дело, что переписаны, хотя бы потому что стандартной библиотеке g++ нет смысла компилиться под vc++
однако спецификация написанная в стандарте как правило подразумевает однозначную реализацию, особенно для простых библиотек
Здравствуйте, Abyx, Вы писали:
A>а стандартная библиотека зачем нужна? (мы же ее сами можем написать)
Она нужна только как runtime compiler support
А функционал в ней мегаубогий, лучше сразу тем что ОС предоставляет пользоваться.
Здравствуйте, landerhigh, Вы писали:
L>Из выделенного у вас будет только распечатанная колода карт и попугай на том конце техподдержки, повторяющий, что они не могут воспроизвести проблему. L>Если вы еще с таким не сталкивались, у вас просто все впереди.
Здравствуйте, landerhigh, Вы писали:
L>И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
Надо же поржать было как все парятся а ему хорошо.
Здравствуйте, Трололоша, Вы писали:
L>>Из выделенного у вас будет только распечатанная колода карт и попугай на том конце техподдержки, повторяющий, что они не могут воспроизвести проблему. L>>Если вы еще с таким не сталкивались, у вас просто все впереди.
Т>Мы у таких индусов видимо ничего не покупаем.