Студия 2012 C++ документация Визуальный утверждает, что _ReadBarrier
и _WriteBarrier
встроенные функции теперь deprecated:std :: _ Atomic_thread_fence (с капиталом A) это правильно?
_ReadBarrier
,_WriteBarrier
и_ReadWriteBarrier
компилятор и встроенные функции макро MemoryBarrier все устарели и должны не могут быть использованы. Для межпоточной связи используйте такие механизмы, какatomic_thread_fence
иstd::atomic<T>
, которые определены в стандартном справочнике библиотек C++ . Для доступа к оборудованию используйте параметр/volatile: iso , а также ключевое словоvolatile
(C++).
После показаний, я затем перейти к atomic_thread_fence
documentation и заявляет, что функция определена на заголовке <atomic>
. Если я включаю такой заголовок в мое решение, я не могу найти функцию, но вместо этого найду std::_Atomic_thread_fence
.
Именование указывает на то, что это реализация, специфичная для Microsoft. Является ли это проблемой документации или мне нужно изменить, возможно, пути поиска по умолчанию #include
?
Хмм, интересно, я могу определенно увидеть 'atomic_thread_fence' в' 'на моем VS2012. '_Atomic_thread_fence' находится в' '. –
Использование vs 2013, это происходит и со мной, однако, когда я исправляю его на 'atomic_thread_fence', он работает отлично. – phantom
@ T.C: вы совершенно правы, я не заметил, что если я перейду к «открытому определению», файл, который фактически открыт, это '', который фактически включен в '' - Спасибо! –
BlueStrat