Здравствуйте, landerhigh, Вы писали:
L>>>А вот насчет бага, вылезающего в виде аккуратного такого расстрела памяти из недр реализации сетевого протокола, причем только раз в полнолуние, когда рак на горе свистнул да на хабе колиизия моргнула, и потому никаким минимальным кодом не воспроизводящийся, вы будете переписываться с техподдержкой до второго пришествия. Т>>Значит в таком раскладе будет дамп или ещё что либо. L>
См выделенное.
Здравствуйте, Flat117, Вы писали:
Т>>Драсте! Ты коммерческие либы вообще видел? Там саппорт включён, если что. Т>>As is относится к тому, что они не отвечают за damage. А баги фиксить их заставлять можно только в путь. F>И прописано время фиксения бага?
Зависит от контракта.
Здравствуйте, landerhigh, Вы писали:
L>Мне нужно было использовать asio. Она хоть и header only, но требует собранной boost::system. Используя вышеприведенную статью, мне удалось собрать блиотеки буста, не все, конечно, и с ворнингами. Потребовался специальный конфиг и правка одного jam-скрипта.
asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, mike_rs, Вы писали:
_>>когда буст станет стандартом, как stl,
A>часть библиотек буста использована в стантартной библиотеке C++11
Если не ошибаюсь, эти части были неслабо переписаны (те же shared_ptr)
Здравствуйте, Трололоша, Вы писали:
Т>Здравствуйте, nen777w, Вы писали:
Т>Не так давно видел создание и чтение XML файлов через boost::property_tree — ИМХО за такое надо нещадно пиз...ть!
а что не так с чтением? в зависимости от задачи, это может быть довольно удобно.
__>Здравствуйте, nen777w, Вы писали: N>>Хорошо, дл примера кое что что использую я: N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами? N>>ну да, разве что там где требуется большая скорость обработки данных, например в audio I/O в остальном же boost решает эту задачу проще. __>callbackи сами по себе очень кривая архитектурная идея. они сейчас нигде почти не используются, кроме как раз типа audio io
Ладно... Пррримеррр-р-рр.
Програмисту Васе нужно написать класс таймера с калбеком.
Вася знает boost и пишет так:
Програмисту Пете понадобилось ещё передать в этот калбек парочку своих параметров.
Програмист Петя не изменяя кода програмиста Васи пишет:
class C {
void foo( int tick, int arg1, int& arg2 ) {}
private:
timer m_timer;
};
...
int c;
m_timer.subscribe( boost::bind( &C::foo, this, _1, 10, boost::ref(c)) );
Теперь вопрос, как бы программисту Васе пришлось бы извернуться что бы обеспечить таймер под все возможные сигнатуры каллбеков программиста Пети, не используя boost ?
Здравствуйте, Трололоша, Вы писали:
L>>>>А вот насчет бага, вылезающего в виде аккуратного такого расстрела памяти из недр реализации сетевого протокола, причем только раз в полнолуние, когда рак на горе свистнул да на хабе колиизия моргнула, и потому никаким минимальным кодом не воспроизводящийся, вы будете переписываться с техподдержкой до второго пришествия. Т>>>Значит в таком раскладе будет дамп или ещё что либо. L>> Т>См выделенное.
Из выделенного у вас будет только распечатанная колода карт и попугай на том конце техподдержки, повторяющий, что они не могут воспроизвести проблему.
Если вы еще с таким не сталкивались, у вас просто все впереди.
Здравствуйте, michae1, Вы писали:
Т>>Не так давно видел создание и чтение XML файлов через boost::property_tree — ИМХО за такое надо нещадно пиз...ть!
M>а что не так с чтением? в зависимости от задачи, это может быть довольно удобно.
А что не так с записью? Записать имеющиеся данные в определенном формате все-таки гораздо легче, чем считать их из формата, который не поддерживается полностью, так как сам можешь выбрать необходимое подмножество формата.
Здравствуйте, Хвост, Вы писали:
Х>Здравствуйте, landerhigh, Вы писали:
L>>Мне нужно было использовать asio. Она хоть и header only, но требует собранной boost::system. Используя вышеприведенную статью, мне удалось собрать блиотеки буста, не все, конечно, и с ворнингами. Потребовался специальный конфиг и правка одного jam-скрипта.
Х>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
Здравствуйте, nen777w, Вы писали:
N>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?
Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB
N>ну да, разве что там где требуется большая скорость обработки данных, например в audio I/O в остальном же boost решает эту задачу проще.
Ты только не забывай о том, что Visual Studio есть только на одной платформе, с которой работают далеко не все.
ГВ>За других не скажу, а я как-то нарывался на то, что Boost не надо, мол, использовать, потому что тогда его начнут использовать другие программисты, которые ниже квалификацией. Отсюда руководство захотело, чтобы я кромсанул Boost и чуть ли не переименовал названия классов. Честно сказать, всего букета логических выводов из такой посылки я озвучивать не стал: ну хотят — пусть развлекаются, мне-то что за корысть их отговаривать? Расстались, правда, мы достаточно скоро, но дело было совсем не в Boost.
Ситуация до боли знакомая. Меня так в одной (весьма большой и известной в Москве!) конторе заставили выкусить из Boost'а некоторые библиотеки (smart pointer'ы и что-то еще, не помню точно что), переименовать классы и т.п.. Перед этим были продолжительные беседы на тему "почему велосипеды — это хорошо", тянулось где-то с полгода. Во, я даже на RSDN, помню, заводил тред: этот
Здравствуйте, landerhigh, Вы писали:
Х>>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
L>Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
Здравствуйте, Handie, Вы писали:
H>Сравним код:
H>Node.js — 8 строк
H>Аналог на Boost ASIO — 137 строк
Ну какой-же это аналог? Ты сравниваешь синхронный код с асинхронным. Синхронный на asio значительно проще.
А во вторых ты сравниваешь высокоуровневую либу и низкоуровневую. Если взять cpp-netlib, то сервер на ней будет таким
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, nen777w, Вы писали:
N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?
KP>Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB
Не брался еще за gdb вплотную, но мне это предстоит. Насколько я понимаю, с 7.0 есть pretty printers на питоне.
С gdb кстати проблема далеко не только в boost, stl тоже нифига не поддерживается из коробки...
И кстати почему консольный gdb? Есть же всякие эклипсы и ко...
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, enji, Вы писали:
E>>Не брался еще за gdb вплотную, но мне это предстоит. Насколько я понимаю, с 7.0 есть pretty printers на питоне.
KP>На Маке нету.
У меня кросс-gdb для арма, из коробки тоже нету поддержки этой возможности. Однако планирую пересобрать gdb сам и ее включить. Для мака так сделать нельзя?
E>>С gdb кстати проблема далеко не только в boost, stl тоже нифига не поддерживается из коробки...
KP>С STL проблема легко решается.
Здравствуйте, enji, Вы писали:
E>У меня кросс-gdb для арма, из коробки тоже нету поддержки этой возможности. Однако планирую пересобрать gdb сам и ее включить. Для мака так сделать нельзя?
Я обдумывал такую возможность, но уперся в то, что GDB на Маке довольно сильно модифицирован Эпплом. Ну а так как глубоко копать эту тему небыло ни времени ни желания, то бросил.
KP>>С STL проблема легко решается.
E>А как? И в чем проблема также решить ее с бустом?
Для GDB я находил набор скриптов для вывода значений стандартных контейнеров. Проблема не в связке BOOST + GDB, а в boost::bind/boost::function + GDB, так как при ее использовании, пройтись по функциям отладчиком становится крайне трудно, а стеки вызовов начинают напоминать шутки про Java.
Здравствуйте, enji, Вы писали:
E>А во вторых ты сравниваешь высокоуровневую либу и низкоуровневую. Если взять cpp-netlib, то сервер на ней будет таким
+1. Причем клиентский код вообще в одну строчку можно записать:
// The client sends an HTTP request to the server, and the output is printed to the console.
cout << body(client().get(client::request("http://www.boost.org/")));