Транзакционная память и не только: очередные новые спецификации C++

Не прошло и трех месяцев с момента официального принятия предыдущих технических спецификаций (англ. Technical Specification, TS) на новые возможности стандартной библиотеки языка C++, как Международная организация по стандартам (ISO) снова находит возможность нас радовать. На сей раз — новинками в области транзакционной памяти (англ. transactional memory, TM) и очередными расширениями самой стандартной библиотеки.

Первая из названных выше спецификаций на уровне языка определяет такой механизм синхронизации вычислений, который способен объединять группы операторов C++ в атомарные изолированные транзакции, для чего вводит понятия транзакционно-безопасных функций (англ. transaction-safe functions), а также синхронизированных и атомарных блоков (англ. synchronized / atomic blocks). (Заметим, что упомянутые понятия неделимости и изолированности транзакций в языке C++ в целом соответствуют известным большинству читателей нашего блога аналогичным понятиям, используемым в теории проектирования баз данных.)

Вторая спецификация включает в состав стандартной библиотеки языка C++ целый ряд новых классов, функций, шаблонов классов, шаблонов функций и других элементов. Среди нововведений — долгожданный безопасный контейнер std::experimental::any для хранения единичных значений различимых типов, шаблон для представления потенциально отсутствующих значений std::experimental::optional<T>, не обладающая правом владения строкой ссылка на таковую, экспериментальные реализации обобщенных алгоритмов выборки и поиска (в том числе алгоритма поиска по строке Бойера – Мура) и т.д. По заявлению ISO, спецификация не является нормативной, — некоторые компоненты библиотеки могут стать кандидатами на стандартизацию в очередной версии C++, но в настоящее время не являются частью ни одного стандарта, тогда как другие могут никогда не пройти стандартизацию или быть стандартизированы в существенно иной форме.

Обе названные спецификации оформлены как документы ISO/IEC и имеют следующие выходные данные:

Спецификации опубликованы 1 октября 2015 г. и доступны для скачивания как PDF-файлы; их стоимость определена на уровне 138 CHF и 198 CHF, соответственно.

Представляя бесспорный интерес для евангелистов языка C++ и разработчиков компиляторов, спецификации имеют шансы на включение в перспективный стандарт C++17.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.