Я знаю, что аналогичный шаблон выходит в TBB от Intel, кроме того, что я не могу найти какую-либо реализацию в google или в библиотеке Boost.Реализация атомарного шаблона C++ 0x
ответ
Вы можете найти дискуссии по поводу реализации этого признака в импульс там: http://lists.boost.org/Archives/boost/2008/11/144803.php
> Можно ли N2427 - C++ Атомные типы и операции будут реализованы
> без помощи компилятора?
No.
Они не должны быть встроенными функциями, если вы можете написать встроенный ассемблер (или отдельно скомпилированный ассемблер для , что материя), то вы можете написать сами по операции непосредственно. Вы могут даже использовать простой C++ (например, простое назначение для загрузки или для хранения). Причина, по которой вам нужна поддержка компилятора , предотвращает неуместную оптимизацию: атомные операции не могут быть оптимизированы, и обычно не следует переупорядочивать до или после любых других операций. Это означает, что даже неатомные магазины , выполненные до хранения атомарного магазина , должны быть заполнены и не могут быть кэшированы в регистре (например). Кроме того, нагрузки, возникающие после атомной операции , не могут быть подняты перед атомным оператором. На некоторых компиляторах достаточно использовать встроенный ассемблер . В других случаях достаточно вызвать внешнюю функцию . MSVC предоставляет _ReadWriteBarrier() для обеспечения порядка компилятора. Другие компиляторы нужны другие флаги.
- 1. Реализация хорошего C++ 0x error_condition?
- 2. Реализация функции шаблона шаблона C++
- 3. Специализация шаблона на лямбда в C++ 0x
- 4. Гибкость шаблона псевдонима в C++ 0x
- 5. C++ 0x lambdas с параметрами шаблона?
- 6. реализация «шаблона метода шаблона» в объекте c
- 7. Резьбовая реализация шаблона наблюдателя - C++
- 8. Реализация фабричного шаблона в C#
- 9. Реализация шаблона кода с C#
- 10. C++ только реализация класса шаблона
- 11. Реализация шаблона фабрики в C++
- 12. Реализация шаблона наблюдателя в C++
- 13. C++: реализация шаблона (стиль кода)
- 14. Неверная реализация функции шаблона C++
- 15. std :: future exception on gcc экспериментальная реализация C++ 0x
- 16. Наложение ограничений на типы функций шаблона, без понятий C++ 0x
- 17. C++ 0x передача аргументов в функции вариационного шаблона
- 18. C++ 0x Параметр Lambda во вложенной функции шаблона
- 19. Реализация шаблона класса Matrix
- 20. C++ 0x: память заказа
- 21. template typedef C++ 0x
- 22. Улучшения производительности C++ 0x
- 23. C++ 0x прерывание потока
- 24. C++ 0x назначенные инициализаторы
- 25. Любые реализации C++ 0x?
- 26. C++ 0x Lambda overhead
- 27. Определить наличие C++ 0x
- 28. C++ 0x threading
- 29. C++ 0x - Когда?
- 30. C++ 0x Списки инициализаторов