Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Limitations

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 6. Boost.Atomic

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Хотя Boost.Atomic стремится максимально точно реализовать атомные операции с C++11, есть несколько ограничений, которые нельзя снять без поддержки компилятора:

  • Использование не-POD-классов в качестве параметра шаблона для атомный<T> приводит к неопределенному поведению: Это означает, что любой класс, содержащий конструктор, деструктор, виртуальные методы или спецификации контроля доступа, не является обоснованным аргументом в C++98. C++11 немного смягчает это, позволяя «тривиальным» классам содержать только пустые конструкторы. Совет : Используйте только типы POD.
  • Компиляторы C++98 могут трансформировать вычислительную зависимость в зависимость от управления: Крайне важно, что memory_order_consume влияет только на вычислительно-зависимые операции, но в целом ничто не мешает компилятору трансформировать вычислительную зависимость в зависимость от управления. Компилятор C++11 будет запрещен для такого преобразования. Совет: Используйте memory_order_consume только в сочетании со значениями указателей, так как компилятор не может спекулировать и преобразовывать их в зависимости управления.
  • Защитные операции обеспечивают «слишком сильный» порядок компилятора : Семантически memory_order_acquire/memory_order_consume и memory_order_release необходимо сдерживать переупорядочение операций памяти только в одном направлении. Поскольку нет возможности выразить это ограничение компилятору, они действуют как «полные барьеры компилятора» в этой реализации. В угловых случаях это может привести к менее эффективному коду, чем компилятор C++11.
  • Нет межпроцессного запаса : с использованием атомный> в общей памяти работает только правильно, если атомный<свободный()==истинный.

PrevUpHomeNext

Статья Limitations раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 6. Boost.Atomic может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 6. Boost.Atomic ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:42:49/0.028020143508911/1