Добавлены конструкторы и операторы присваивания перемещений (только для компиляторов с поддержкой ссылок на значение C++11). Оригинал пластыря внес Антоний Полухин.
Версия 1.37.0:
Улучшила производительность Boost. Функция swap() для больших функциональных объектов. Оригинальный патч от Niels Dekker.
Добавлен новый заголовок, обеспечивающий поддержку использования Boost. Тип библиотеки на подъеме. Функциональные объекты.
Добавлен новый заголовок, обеспечивающий поддержку использования Boost. Тип библиотеки на подъеме. Функциональные объекты.
целевая() функция теперь относится к cv-калификаторам объектов функций, хранящихся посредством ссылки (используяусилитель::reference_wrapper), так что ссылка на объект функцииconstне может быть доступна в качестве ссылки на объект функции неconst.
Версия 1.36.0:
Усиление. Функция теперь реализует поддержку распределителя так же, как это предусмотрено в C++0x, на основе предложения комитета C++N2308. Это изменение удаляетРаспределительшаблонный параметримпульс::функцияв пользу конструктора, который принимает аргумент. Хотя это обратно несовместимое изменение, оно, вероятно, затронет только нескольких пользователей. Этому изменению функционала способствовал Эмиль Дочевски, который также является автором соответствующего предложения комитета C++.
Версия 1.34.0:
Повышение. Функция теперь реализует небольшую буферную оптимизацию, которая может значительно улучшить производительность при копировании или конструировании Boost. Функциональные объекты, хранящие небольшие функциональные объекты. Например,bind(&X:foo, &x, _1, _2)не требует выделения кучи при размещении в Boost. Функциональный объект. Обратите внимание, что некоторые гарантии безопасности исключений изменились: уступка обеспечивает базовую гарантию исключения исвоп ()может быть использовано.
Версия 1.30.0:
Все функции, устаревшие в версии 1.29.0, были удалены из Boost. Функция.
бустер::функцияибустер::функцияNобъекты могут быть назначены 0 (семантически эквивалентно вызовуясно) и по сравнению с 0 (семантически эквивалентно вызовупусто).
Усиление. Функциональный код теперь генерируется полностью библиотекой Preprocessor, поэтому теперь можно генерироватьboost::functionиboost::functionNшаблоны классов для любого количества аргументов.
Версия 1.29.0: Boost.Function был частично переработан, чтобы свести к минимуму интерфейс и сделать его более чистым. Несколько редко используемых или никогда не используемых функций старого Boost. Функция была обесценена и будет удалена в ближайшем будущем. Вот список функций, которые были амортизированы, вероятное влияние амортизации и как настроить свой код:
Изменился синтаксис шаблона классов::function. Старый синтаксис, например,boost::function, был изменен на более естественный синтаксисboost::function, где все типы возврата и аргументов кодируются в одном параметре типа функции. Любые другие параметры шаблона (например,Аллокатор) следуют этому единственному параметру. 122
Разрешение на это изменение зависит от способностей вашего компилятора: если ваш компилятор поддерживает частичную специализацию шаблона и может анализировать типы функций (большинство из них делают), изменять свой код, чтобы использовать более новый синтаксис (предпочтительно) или напрямую использовать один из классовfunctionN, чей синтаксис не изменился. Если ваш компилятор не поддерживает шаблонную частичную специализацию или типы функций, вы должны воспользоваться последней опцией и использовать пронумерованный Boost. Классы функций. Этот вариант просто требует изменения типов, таких какboost::functiontoboost::function2(добавление числа аргументов функции к концу названия класса).
Поддержка старого синтаксиса с усилителем:: Функцияшаблона класса будет сохраняться в течение короткого времени, но в конечном итоге будет удалена, чтобы мы могли обеспечить лучшую совместимость с ошибками и ссылками.
Параметр шаблона политики вызоваПолитикабыл обесценен и будет удален. Нет прямого эквивалента этой редко используемой функции.
Параметр шаблона смешиванияМиксинбыл обесценен и будет удален. Нет прямого эквивалента этой редко используемой функции.
Наборметодовбыл обесценен и будет удален. Вместо этого используйте оператора.
Статья History & Compatibility Notes раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 13. Boost.Function может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.