[Закрывается] большинство используемых частей Повышения

114
задан Roddy 13 July 2011 в 09:09
поделиться

21 ответ

Вероятно, наиболее используемая часть повышения для меня повышение:: shared_ptr.

62
ответ дан fhe 24 November 2019 в 02:29
поделиться

Разговор о повышении:: lexical_cast, почему не что-то, нравится, 'форматируют' статического участника в станд.:: строковая библиотека?
Почти весь gui освобождает, имеют что-то как CString:: Формат (" %i") или QString:: Число (" %i"), которые возвращают инициализированную строку.

1
ответ дан Martin Beckett 24 November 2019 в 02:29
поделиться

То, что я использую большинство, теперь доступно в TR1:

  • общие указатели
  • класс

массива Теперь я также использую классы пула и некоторые другие более определенные вещи.

Вы понимаете теперь, когда Повышение предназначено, чтобы быть полезным для большинства программистов, вот почему это - испытательный стенд для будущей стандартной библиотеки.

3
ответ дан Edwin Pratt 24 November 2019 в 02:29
поделиться

Хорошо, вот новый, который я нашел:
Вместо того, чтобы использовать stricmp я могу использовать повышение , равняется функция и передача в is_iequal предикате
, например:
вместо

stricmp( "avalue", mystr.c_str() ) == 0

я могу использовать

equals( "avalue", mystr, is_iequal() ) 

данный:

#include <boost/algorithm/string.hpp>
using namespace boost::algorithm;
3
ответ дан hamishmcn 24 November 2019 в 02:29
поделиться

Я люблю повышение:: случайный и повышение:: asio и повышение:: файловая система, однако повысьте:: свяжите, повышение:: circular_buffer и повышение:: поток очень практичен, интеллектуальные указатели в порядке, но я предпочитаю RAII вместо этого как управление памятью

3
ответ дан Robert Gould 24 November 2019 в 02:29
поделиться

Я использую повышение:: числовой:: ublas:: матрица вполне немного.

4
ответ дан Todd Gamblin 24 November 2019 в 02:29
поделиться

Я использовал shared_ptr уже много лет. Это настолько полезно, нет никакой причины, что проект должен быть без него.

Вдобавок ко всему, я также использую, Связывать/Функционировать/Лямбда для универсальных механизмов обратного вызова - особенно полезный при тестировании - а также Формат для моей sprintf замены общего назначения.

Наконец, это было просто на днях, когда я использовал Вариант в гневе для решения проблемы (синтаксический анализатор, который мог ответить маленьким, фиксированным набором несвязанных типов маркера). Решение было очень изящно, и я очень доволен им.

7
ответ дан Kaz Dragon 24 November 2019 в 02:29
поделиться

boost::shared_ptr требование для современного программирования на C++, по моему скромному мнению. Вот почему они добавили его к стандарту с TR1. boost::program_options, boost::bind, и boost::signal действительно хороши, если Вы знаете то, для чего они и как использовать их. Последние два имеют тенденцию пугать вновь прибывших все же.

8
ответ дан D.Shawley 24 November 2019 в 02:29
поделиться

Я использую много:

  • повышение:: сигналы
  • повышение:: повышение shared_ptr
  • :: повышение lexical_cast
  • :: свяжите
  • повышение:: случайный
  • повышение:: поток
  • повышение:: noncopyable

, который Другой как Кортеж, Статичный, Утверждает и Целое число, очень полезен, если Вы пишете библиотеку, которая должна использоваться на множестве платформ.

Вещи как Графики и Лямбда более конкретны.

8
ответ дан Cyrille Ka 24 November 2019 в 02:29
поделиться

BOOST_STATIC_ASSERT

Обновление (октябрь 2011): C++ 11 (C++ 0x) имеет static_assert http://www2.research.att.com/~bs/C++0xFAQ.html#static_assert

11
ответ дан Alessandro Jacopson 24 November 2019 в 02:29
поделиться

Никто не упоминает повышение:: кортеж? Для позора!

19
ответ дан 24 November 2019 в 02:29
поделиться

Я удивлен, что никто не упомянул boost::optional. Я использую его чаще, чем какая-либо часть Повышения кроме shared_ptr и scoped_ptr.

20
ответ дан Head Geek 24 November 2019 в 02:29
поделиться

Никто не упомянул Мультииндексные Контейнеры , таким образом, я вмешаюсь поздно. Дело не в этом часто то, что Вам нужны они, но без повышения это - реальная боль для создания эквивалентной структуры данных, а также быть менее эффективным. Я использовал их много недавно для создания контейнеров, которые имеют, ищут на 2 ключах.

21
ответ дан Greg Rogers 24 November 2019 в 02:29
поделиться

Мои фавориты без определенного порядка:

  • файловая система regex
  • поток
  • lexical_cast
  • program_options (просто блестящий!)
  • тест (для всех моих потребностей поблочного тестирования).
  • Строковые алгоритмы
  • Строковый токенизатор
  • формат (безопасное с точки зрения типов строковое форматирование стиля printf)
  • умное Повышение ptrs

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

34
ответ дан Paweł Prażak 24 November 2019 в 02:29
поделиться

BOOST_FOREACH снова делает жизнь стоящей .

(Почему об этом никто не упомянул? Вопрос был задан 8 месяцев назад!)

49
ответ дан 24 November 2019 в 02:29
поделиться

Мне нравится, что вы можете поставить собственный деструктор для shared_ptr.
Это означает, что, например, вы можете использовать его с FILE* и заставить его закрыть файл для вас.
eg

void safeclose(FILE*fp) {
    if(fp) {
        fclose(fp);
    }
}
void some_fn() {
    boost::shared_ptr<FILE> fp( fopen(myfilename, "a+t"), safeclose );
    //body of the function, and when ever it exits the file gets closed
    fprintf( fp.get(), "a message\n" );
}
28
ответ дан 24 November 2019 в 02:29
поделиться

Один из самых используемых мною алгоритмов находится не в самом Boost, а в Adobe Source Libraries (ASL), построенных поверх Boost - в частности, расширения стандартных алгоритмов, которые принимают boost::range вместо отдельных итераторов begin/end. Тогда вместо вызова, скажем,

std::for_each(some_container.begin(), some_container.end(), do_something());

я могу просто сказать

adobe::for_each(some_container, do_something());

(я надеюсь, что эти части ASL со временем перейдут в Boost)

.
9
ответ дан 24 November 2019 в 02:29
поделиться

Вы должны проверить boost :: program_options. Это значительно упрощает синтаксический анализ командной строки.

5
ответ дан 24 November 2019 в 02:29
поделиться

Мы обнаружили, что boost :: spirit очень полезен для бизнес-решения для синтаксического анализа ECMAScript. Сложно, но очень красиво!

7
ответ дан 24 November 2019 в 02:29
поделиться

Я удивлен, что пока не вижу между ответами Boost.Thread .

7
ответ дан 24 November 2019 в 02:29
поделиться

Я использую контейнеры указателя ускорения, а не контейнер STL shared_ptr s.

5
ответ дан 24 November 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: