Новые библиотеки
- Accumulators:
Cтруктура для дополнительных расчетов, а также сбора статистических аккумуляторов, от Eric Niebler..
- Exception:
Библиотека для передачи произвольных данных в объекты исключений, и передачи исключений между потоками, от Emil Dotchevski.
- Units:
Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe
- Unordered:
Неупорядоченные ассоциативные контейнеры, от Daniel James.
Обновленные библиотеки
- Asio:
- Добавлена поддержка последовательных портов.
- Добавлена поддержка UNIX сокетов
- Добавлена поддержка raw сокетов и ICMP.
- Добавлены обертки для POSIX потоко-ориентированных дескрипторов файлов(исключая регулярные файлы).
- Добавлены обертки для Windows потоко-ориентированных HANDLE'ов, таких как именованные pipes (требует HANDLE'ы которые работают с I/O completion портами).
- Добавлены обертки для Windows HANDLE'ы произвольного доступа, такие как файлы (требует HANDLE'ы которые работают с I/O completion портами).
- Добавлены обертки для операций типа reactor (то есть, они сообщают о готовности, но не о выполнении I/O) используется новый тип null_buffers.
- Добавлен тип итератора для побайтового обхода буфера.
- Добавлена новые пергруженные new read_until() и async_read_until(), которые принимают указатель на пользовательскую функцию.
- Добавлено две экспериментальные блокировки очереди (определяются BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE), которые предоставляют масштабируемость io_service на несколько процессоров.
- Различные исправления, улучшения производительности и более полного охвата поддержки распределения памяти.
- Assign:
list_of() (и ее варианты) на данный момент перегружены операторы сравнения. Это позволит вам написать тестовый код, такой как: BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));.
- Foreach:
Макрос BOOST_FOREACH для упрощения перечисления последовательности елементов, от Eric Niebler.
- Новый макрос BOOST_REVERSE_FOREACH для перечесления последовательности элементов в обратном направлении.
- Function:
- Усовершенствована поддержка allocator, от Emil Dotchevski.
- Hash:
Незначительные обновления и исправления, для получения дополнительной информации см. список изменений.
- Interprocess:
- Добавлена анонимно разделяемая память для UNIX систем.
- Исправлена недостающая семантика перемещения в управляемых памятью классах.
- Добавлены copy_on_write и open_read_only варианты для разделяемой памяти и классов управляющих связанными файлами.
- shared_ptr перемещение и поддержка псевдонимов.
- Intrusive:
- Добавлены linear<> и cache_last<> варианты раздельно связанных списков.
- Добавлен optimize_multikey<> вариант неупорядоченного контейнера хуков.
- При выборе в hook опции store_hash используются оптимизированные неупорядоченные контейнеры
- Реализация изменена чтобы избежать явного использования блоков try-catch и для совместимость, когда отключены исключения
- Math:
- Added new non-central Chi-Square, Beta, F and T distributions.
- Added Exponential Integral and Zeta special functions.
- Added Rounding, Truncation, and Unit-in-the-last-place functions.
- Added support for compile time powers of a runtime base.
- Added a few SSE2 based optimisations for the Lanczos approximations.
- MPI:
- Добавлена поддержка не блокирующих операций в Python, от Andreas Klöckner.
- Добавлена поддержка для технологии графов.
- Multi-index Containers:
Незначительные добавления и исправления (Подробнее в release notes).
- PtrContainer:
Добавлены итераторы вставки и поддержка еще нескольких контейнеров (Подробнее в информации по обновлению).
- Spirit:
Основная кодовая база "Классического" Spirit V1.8.x интегрирована со Spirit V2, "Новое Поколение" (Подробнее в ChangeLog).
- Thread:
- Новые функции lock и try_lock для блокирования сразу нескольких мутексов.
- Поддержка rvalue для move семантики в компиляторах, где она поддерживается.
- Исправлено несколько ошибок и добавлены пропущенные функции (включая серьезную ошибку с условной переменной win32).
- Типы scoped_try_lock теперь обратно совместимы с Boost 1.34.0 и более ранними релизами.
- Поддержка передачи аргументов в функцию потока через добавление дополнительных аргументов в конструктор потока.
- Для обратной совместимости добавлены перегружаемые функции timed_lock и timed_wait, позволяющие использовать xtime для таймаутов.
- Wave:
- Wave 2.0 это новый большой релиз в котором представлены некоторые изменения API, которые не позволяют использовать его с версиями Boost ниже V1.36.0. В основном были изменены API и hook интерфейс.
- Исправлена пара ошибок, система возвратного тестирования улучшена для тестирования preporcessing hooks интерфейса (подробности в Changelog).
- Xpressive:
Регулярные выражения которые могут быть записаны как строки или как шаблоны выражений и могут обращаться к друг другу и к самим себе рекурсивно используя мощь контекстно свободных грамматик, от Eric Niebler.
- skip() чтобы указывать какие части входной последовательности должны быть пропущены при работе с регулярным выражением
- regex_replace() принимает объекты форматирования и выражения форматирования в дополнение к строкам формата.
- Алгоритм regex_replace() базирующийся на интервалах.
- Исправлено падение при указании семантических действий в просмотрах вперёд(look-ahead), просмотрах назад(look-behind) и независимых подвыражениях.
Протестировано на компиляторах
Основной тест на компиляторах:
- GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC
- GCC 4.2.3 on Ubuntu Linux 8.08.1
- HP C/aC++ B3910B A.06.17 on HP-UX 64-bit
- Visual C++ 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2
Дополнительный тест на компиляторах:
- GCC 4.2.1 on FreeBSD-7
- GCC 4.1.2 on NetBSD
- HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC
- IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40
- Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1
- Compaq C++ V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.
- Sun C++ 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.
- На Linux:
- GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0.
- GCC 4.3.0 with C++0x extensions.
- GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux.
- Intel C++ 8.1, 9.0 and 9.1.
- QLogic PathScale(TM) Compiler Suite: Version 3.1
- pgCC 7.2-3 64-bit target on x86-64 Linux
- На Windows:
- Intel 10.1, with Visual C++ 9 backend.
- Lots of tests on Visual C++ 7.1, 8.0, 9.0
- Visual C++ 7.1 with Apache C++ Standard Library 4.2.x branch.
- Visual C++ 8.0 with STLport 5.1
- Visual C++ 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0 Pocket PC SDK (ARMV4I).
- Borland 5.6.4, 5.8.2, 5.9.3
- 64 bit Intel 10.1, with Visual C++ 9 backend.
- 64 bit Visual C++ 9.
- Comeau C++ 4.3.10.1 beta 2, with Visual C++ 9 backend.
Источник: Boost Version 1.36.0
Перевели: ViGOur и Andrew Selivanov
Обсудить...