Boost. Самые полезные (интересные) классы
От: COFF  
Дата: 06.02.07 13:55
Оценка:
Что и в какой последовательности (по степени полезности) посоветуете посмотреть в бусте кроме умных указателей?

И второй вопрос по shared_ptr/weak_ptr. Если я планирую использовать их в многопоточной (но заведомо однопроцессорной) среде, должен-ли я выставлять BOOST_HAS_THREADS (что приведет, как я понимаю, к созданию критической секции на каждый объект — этого, естественно, хотелось бы избежать)? Оборачивать каждое создание/копирование/разрушение указателя в собственную критическую секцию тоже не хотелось бы. С intrusive_ptr вопрос решается использованием InterlockedIncrement/Decrement (Win32) в intrusive_ptr_add_ref/release, а вот с shared_ptr?

Заранее спасибо!
Re: Boost. Самые полезные (интересные) классы
От: demi США  
Дата: 06.02.07 14:07
Оценка:
Здравствуйте, COFF, Вы писали:

COF>Что и в какой последовательности (по степени полезности) посоветуете посмотреть в бусте кроме умных указателей?


COF>И второй вопрос по shared_ptr/weak_ptr. Если я планирую использовать их в многопоточной (но заведомо однопроцессорной) среде, должен-ли я выставлять BOOST_HAS_THREADS (что приведет, как я понимаю, к созданию критической секции на каждый объект — этого, естественно, хотелось бы избежать)? Оборачивать каждое создание/копирование/разрушение указателя в собственную критическую секцию тоже не хотелось бы. С intrusive_ptr вопрос решается использованием InterlockedIncrement/Decrement (Win32) в intrusive_ptr_add_ref/release, а вот с shared_ptr?


COF>Заранее спасибо!


Какой то вопрос
boost.noncopyable.

Я бы посоветовал не ПОСМОТРЕТЬ именно ПОСМОТРЕТЬ все — что это делает, в чем приемущества-недостатки, а когда встанет необходимость — изучить специфику. Главное знать что есть, когда и какой ценой это применяется. Есть какая-то критическая масса — после некотрого знакомства в Win32 API ты легко сможешь найти нужную. Так же и здесь знать что примерно есть и уметь нарыть. Это задача инжнера
Не стыдно попасть в дерьмо, стыдно в нём остаться!
Re[2]: Boost. Самые полезные (интересные) классы
От: COFF  
Дата: 06.02.07 14:33
Оценка:
Здравствуйте, demi, Вы писали:

D>Я бы посоветовал не ПОСМОТРЕТЬ именно ПОСМОТРЕТЬ все — что это делает, в чем приемущества-недостатки, а когда встанет необходимость — изучить специфику. Главное знать что есть, когда и какой ценой это применяется. Есть какая-то критическая масса — после некотрого знакомства в Win32 API ты легко сможешь найти нужную. Так же и здесь знать что примерно есть и уметь нарыть. Это задача инжнера


Проблема, с одной стороны, в том, что не так много свободного времени, поэтому даже посмотреть все на должном уровне сразу не получится. С другой стороны, ясно, что какие-то классы полезнее других — например интеграция с питоном мне пока совсем не нужна И хотелось бы по мере изучения что-то сразу применять в реальных проектах, а для этого надо именно разбираться, смотреть код и т.п. Соответственно, хотелось бы составить своеобразный road-map
Re: Boost. Самые полезные (интересные) классы
От: Bell Россия  
Дата: 06.02.07 14:50
Оценка: +1
Здравствуйте, COFF, Вы писали:

boost::bind
Любите книгу — источник знаний (с) М.Горький
Re: Boost. Самые полезные (интересные) классы
От: AndrewJD США  
Дата: 06.02.07 16:32
Оценка:
Здравствуйте, COFF, Вы писали:

COF>Что и в какой последовательности (по степени полезности) посоветуете посмотреть в бусте кроме умных указателей?


smart pointers, bind, function, noncopyable,
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re: Boost. Самые полезные (интересные) классы
От: Roman Odaisky Украина  
Дата: 06.02.07 16:46
Оценка:
Здравствуйте, COFF, Вы писали:

COF>долженл и я выставлять BOOST_HAS_THREADS (что приведет, как я понимаю, к созданию критической секции на каждый объект — этого, естественно, хотелось бы избежать)?


Начиная, кажется, с 1.32, boost::shared_ptr использует Interlocked* (на других платформах другие lock-free-аналоги).
До последнего не верил в пирамиду Лебедева.
Re[2]: Boost. Самые полезные (интересные) классы
От: COFF  
Дата: 06.02.07 17:17
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Начиная, кажется, с 1.32, boost::shared_ptr использует Interlocked* (на других платформах другие lock-free-аналоги).


Да, действительно, сейчас посмотрел по коду — используется BOOST_INTERLOCKED_INCREMENT и т.п. Причем, на Win32 они используются всегда — вне зависимости от наличия BOOST_HAS_THREADS. Но в weak_ptr.hpp BOOST_HAS_THREADS используется, получается лучше BOOST_HAS_THREADS выставлять. Понятно, спасибо
Я просто какое-то время назад смотрел — там критические секции использовались.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.