Чтобы добавлять сообщения и комментарии, .

@max630:
max630

зачем изучать монады? Чтобы boost::optional::value_or_eval не возвращал value, блядь, _type

@bigote:
bigote

Поменял-таки себе телефон с древнючего (меньше трёх лет и полностью работоспособного, но не вмещающего уже в свои мозги жирного софта) Samsung Galaxy Ace на Highscreen Boost II SE. Поддержал заодно отечественного производителя. Что могу сказать — вполне достойное соотношение "цена-качество". Большую батарею (которая на 6000 mAh) пока не пробовал, а на маленькой (3000) он спокойно жил с постоянно включённым вайфаем по два дня, пока я не наставил всякой хрени (в т. ч. и жуйк-адвансед, который своими фоновыми процессами таки высасывает энергию). Сейчас малой батареи хватает на один день. Хреново, что стандартный чехол с полезными дырками для камер и кнопок налезает только с ней; для большой батареи придётся искать одёжку от более крупного телефона, и это будет просто карман. Но в целом телефон мне нравится. Толком, правда, ещё не потестировал камеру, у неё какой-то программный глюк с автофокусом. Возможно, просто поставлю другую прогу. Ещё в камере есть встроенный режим HDR, но с ним пока не разобрался. То ли виснет телефон с ним, то ли что-то не так делаю. В общем, рецомменд.

@PoZitron:
PoZitron

Вот за что я люблю шаблоны, так это за
error: no match for 'operator=' in '((TimeBlock*)this)->TimeBlock::sec = boost::chrono::operator-(const boost::chrono::time_point<Clock, Duration1>&, const boost::chrono::time_point<Clock, Duration2>&) [with Clock = boost::chrono::steady_clock; Duration1 = boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >; Duration2 = boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >; typename boost::common_type<Duration1, Duration2>::type = boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >](((const boost::chrono::time_point<boost::chrono::steady_clock>)(&((TimeBlock*)this)->TimeBlock::prestart)))'

Это же очевидно как решать!
candidate is:
In file included from /usr/include/boost/chrono/chrono.hpp:11:0,
from /usr/include/boost/chrono/include.hpp:15,
from /usr/include/boost/chrono.hpp:17
/usr/include/boost/chrono/duration.hpp:453:19: note: boost::chrono::duration<Rep, Period>& boost::chrono::duration<Rep, Period>::operator=(const boost::chrono::duration<Rep, Period>&) [with Rep = long long int; Period = boost::ratio<1ll, 1000ll>; boost::chrono::duration<Rep, Period> = boost::chrono::duration<long long int, boost::ratio<1ll, 1000ll> >]
/usr/include/boost/chrono/duration.hpp:453:19: note: no known conversion for argument 1 from 'boost::common_type<boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >, boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >, void>::type {aka boost::chrono::duration<long long int, boost::ratio<1ll, 1000000000ll> >}' to 'const boost::chrono::duration<long long int, boost::ratio<1ll, 1000ll> >&'

@max630:
max630

в spirit2 уничтожили вообще всю документацию нахуй. Вот всё что есть про обработку ошибок, не считая исходников: boost.org . Вот точно, быстрее свою библиотеку парсеров сделать чем в этом говне разобраться.

@Fedor37:
Fedor37

Обновление прошивки 2.8
support.highscreen.org
Что нового:

Обновление содержит в себе все дополнения и правки предыдущих версий.
Повышена общая стабильность работы системы.
Скорректировано отображение оперативной памяти устройства.
Внимание:

Данная прошивка не предназначена для устройств Rev.B! Установка этой прошивки на Boost Rev.B может привести к выходу аппарата из строя. В случае обнаружения в сервисном центре того, что причиной некорректной работы устройства стала установка этой прошивки наHighscreen Boost Rev.B – такой случай будет признан не гарантийным и ремонт будет производиться за счет владельца аппарата.

Принадлежность аппарата к Rev.B указана на наклейке под аккумуляторным отсеком


Сцуки. Раньше нельзя было сказать что 28B это только для урезанной версии.

@sany:
sany

Что-то не могу осилить. Нужно создать функтор, который выполняется при условии, иначе возвращает дефолтное значение. Есть что-то подобное в бусте, например?

пример использования
boost::function<bool()> f = functor<bool(), predicate, false);

@bitfield:
bitfield

Жуик Пипл, нид хелп. Как заставить cmake линковать программу с liboost_thread.so, не с libboost_thread.so.1.40.0?

@sss:
sss

у кого нибудь boost::process работает на windows с последними версиями boost ?

@Spumer:
Spumer

Пишу с другом апдейтер. На моих плечах работа с файлами и списками файлов.
Тестирую на своем каталоге с исходниками, размер которого 936 МБ в котором 40 217 файлов и 4146 каталогов. Программа обходит рекурсивно указанную папку и создает md5-хэш для каждого файла и каталога на основе его содержимого. В качестве данных для хэширования каталога, я решил использовать хэши его файлов/каталогов.

Для указанного мной ранее каталога, это заняло 15 мин. и 44 сек.
Компилировал без оптимизации, разве что -s :3
Для того же самого каталога, но с -O3 и -Os, это заняло 15 мин. 39 сек.
И наконец, просто с -O2 это заняло 15 мин. 27 сек

Пока без поддержки многоядерности. Посему наблюдается лишь 50% заргузки на моем ноуте.
Потребление памяти не замерял, но точно менее 10МБ.
Достаточно неплохие результаты на мой взгляд, буду продолжать работать в этом направлении :)

@shizeeg:
shizeeg

жуйк, такая проблема. Во FreeBSD 7.4 пытаюсь собрать swiften. SCons не видит boost/signal.hpp, хотя он лежит в /usr/local/include/boost/signal.hpp
вопрос: как сказать SCons'у где искать boost-libs?
P.S.: в Arch Linux всё собирается boost-libs 1.48 в Арче и во FreeBSD, SCons 2.1.0, swiften из git.

@USeTi:
USeTi

Пишу кросплатформенную тулзу, которой нужно довольно шустро в несколько потоков дробить числа. Смотрю на бустовские threads. Плюсы, минусы, подводные камни ?

@CheshaNeko:
CheshaNeko

Искал проекты где используется boost.test, нашел только сам boost. Плохо искал?

@sany:
sany

Вот чувак пишет норм на c++ habrahabr.ru

@Proxy-M:
Proxy-M

Онлайновый компилятор с выводом ошибок компиляции, поддержкой boost и выводом результатов работы программы (stdout):
liveworkspace.org

@Proxy-M:
Proxy-M

в boost есть такой замечательный способ работать с серийными портами через Boost.Asio
boost.org
а кто мне скажет как таким же замечательным кросс-платформенным методом получить те самые имена всех доступных портов в системе?

@sany:
sany

Можно ли как-то создать создать специализацию шаблона для типов, для которых определена операция std::ostream::opertor<< ?

@Tishka17:
Tishka17

Я анверно делают что-то не то, но как вытащить и распарсить бустом несколько json объектов из стрима? read_json пытается сделать из всего содержимого стрима один json объект, а соответственно ждет окончания данных.

@Tishka17:
Tishka17

Пытаюс скомпилить рпимер по boost::asio. Получаю такую ошибку: «async_connect» не является элементом «boost::asio»

@Equidamoid:
Equidamoid

Буст — такая няшка!
[806] boost::multi_index::multi_index_container<std::pair<std::string const, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > >, boost::multi_index::indexed_by<boost::multi_index::sequenced<boost::multi_index::tag<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::multi_index::ordered_non_unique<boost::multi_index::tag<boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> >::subs::by_name, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<std::pair<std::string const, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > >, std::string const, &(std::pair<std::string const, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > >::first)>, std::less<std::string> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<std::pair<std::string const, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > > > >::insert_(std::pair<std::string const, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > > const&)

@sany:
sany

Узнал про C++ Debugger Visualizers для Visual Studio тут habrahabr.ru

Хорошая вещь, для boost кое-что есть тут svn.boost.org

@sany:
sany

Шаблонные шаблонные параметры это прошлый век, они не удобны.
Есть способы их избегать. Например:
есть класс A, в котором нужно объявлять контейнер из произвольного типа, а тип контейнера передавать параметром шаблона:

template <typename T, typename Container>
struct A
{
  typedef Container<T> type;
};

Но так как Container это шаблон, принимающий два параметра: тип данных и тип аллокатора,
то следует писать так:

template <typename T, template<typename, typename> class Container>
struct A
{
  typedef Container<T, std::allocator<T> > type;
}

Но я не охочу указывать явно и самостоятельно тип аллокатора, это может првести к ошибке. 

Чтобы получить тип теперь мы должны вызвать:
typedef A<int, std::vector>::type type;

В boost mpl есть плейсхолдеры, которые используются для создания лямбда метафункций. С помощью них можно избежать создания шаблонных шаблонных параметров. То есть я передаю в шаблон A уже инстанцированный шаблон так:
typedef A<int, std::vector<boost::mpl::_1> >::type type;

Тогда в шаблоне A инстанцирование конейнера с произвольным типом будет выглядеть так:

#include <boost/mpl/apply.hpp>

template <typename T, typename Container>
struct A
{
  typedef boost::mpl::lambda<Container> lambda;
  typedef typename boost::mpl::apply<lambda, T>::type type;
};

@sany:
sany

Только сейчас обнаружил для себя BOOST_AUTO (#include <boost/typeof/std/utility.hpp>),
например, перебирать итераторы можно вместо громоздкого
for (std::map<int, int>::const_iterator iter = a.begin(); iter != a.end(); ++iter)
так:
for (BOOST_AUTO(iter, a.begin()); iter != a.end(); ++iter)

@CheshaNeko:
CheshaNeko

Как-то туго boost::asio идет(

@CheshaNeko:
CheshaNeko

Так удалось передавать строки с сервера и печатать их на клиенте. Завтра еще потыкаем. А сейчас спать.

@CheshaNeko:
CheshaNeko

Послал привет мир по сети ^_^

@CheshaNeko:
CheshaNeko

Еще чуть чуть и я перейду на чистый С

@CheshaNeko:
CheshaNeko

Нельзя просто так взять и настроить boost

@CheshaNeko:
CheshaNeko

Кто буст asio тыкал? Не компилируется пример из документации. Там есть какие-то подводные камни?

@CheshaNeko:
CheshaNeko

Хотел сегодня потыкать буст сокеты. Ага конечно, ща вот сижу буст ставлю/настраиваю

@iorlas:
iorlas

Хоть я в старые времена и считал что у буста хорошая документация, сравнивать одни доки boost::regex с python.re даже не хочется, на столько качество разное, хотя вот для буста люди явно старались не мало.

@iorlas:
iorlas

Пилю сейчас пару небольших вкусняшек для ST2. Для начала, занялся TODO-списком. Для самого начала — списком локальным(только с текущего файла). Для поиска используется find_all метод текущего view. Фишка в том, что там поддерживаются регекспы, форматирование, пара флагов, но всё это сделано не через Python, а через Boost. Следовательно, там нет поддержки некоторых фишек re-модуля питона и форматирование там совсем иное. Жаль что в доках этого не было упомянуто. Хорошо хоть я сам сообразил почти сразу, после нулевого результата попытки форматировать результат через строку "{0}".
Продолжение следует.

@sss:
sss

подскажите как собрать asio отдельной либой ?

@zeks:
zeks

Я опять вляпался в стандартную ошибку порграммиста — сначала написал парсер, а только потом узнал про boost::spirit :(

@sany:
sany

flock, fcntl, boost::interprocess::file_lock...
одно работает только под windows, другое только под unix, есть ешё hp-ux, под ним вообще ничего не работает.

@angrylibrarian:
angrylibrarian

А не знает ли кто-нибудь, как средствами boost приджоиниться к source-specific multicast группе? Именно smm. Типа как IP_ADD_SOURCE_MEMBERSHIP? очень надо.

@folex:
folex

map<string, path> paths;
for(directory_iterator it = directory_iterator(path); it != directory_iterator(); it++)
{
//paths.insert(fileMd5(it), it->path().filename());
//cout << it->path().filename();
}

Говорит, что expected primary expression перед скобками в for.
ЧЯДНТ?

@zhu:
zhu

Fedora x86_64 при моей дерзкой попытке поставить boost-devel выдает прекраснейшее сообщение об ошибке:
Помилка: boost-serialization-1.47.0-3.fc16.i686 != boost-serialization-1.47.0-4.fc16.x86_64спасибо, капитан.
а вообще, да буст не ставится, какие-то зависимости поломатые.

@iorlas:
iorlas

Буст не нужен, если нет цели использовать приложение на линупсе и нет строгого требования отказаться от использования qt. И так, и так будет весить дохуя, вот только если использовать Qt, то кодинг на цпп превращается в кодинг на питоне, когда кодинг с бустом есть минное поле, ради которого приходится жертвовать стольким, делать столько хаков, ебаться столько, что кодить на цпп уже не захочется.

@iorlas:
iorlas

Буст не поддерживает wstring, только string("т.к. буст вызывает сразу winapi, а хуй знает как там, в венде, с юникодом, поэтому и юзаем так", почти цитата с rsdn), а в "студии" юникод нормально не отключить. Вот и получается что буст с юникодом никак, а студия без него никуда, приходится хачить-трюкачить, блеать.

@sss:
sss

-DBOOST_THREAD_USE_LIB — и все компилится, и даже где то работает