я знаю это boost::atomic
не является официальной частью библиотеки Boost, но я видел, что она упоминалась несколько раз о стековом потоке, поэтому я решил попробовать. Я должен префикс этого сообщения, сказав, что я искал Google, StackOverflow и документацию для boost::atomic
перед публикацией этого.
Я загрузил boost::atomic
от http://www.chaoticmind.net/~hcb/projects/boost.atomic/ и скопировал его в мою папку Boost. Тем не менее, у меня возникают проблемы с его компиляцией после включения, и я думаю, что в коде есть ошибка. Одной из функций, вызывающих проблемы, является
static inline void
platform_fence_after_load(memory_order)
{
if (order == memory_order_seq_cst()) {
x86_full_fence(void);
}
}
Первая проблема заключается в том, что order
не определено, memory_order_seq_cst
не функция и x86_full_fence
не должен иметь void в качестве параметра. Достаточно легко исправить эти ошибки, но я не уверен, являются ли они признаком чего-то другого. Кто-нибудь здесь использовал boost::atomic
до? Это стабильно, и работает ли оно правильно? Наконец, это на самом деле проблемы с boost::atomic
или я просто не правильно его использую? Любая помощь будет оценена.
Я давно его использовал, он довольно стабильный, но в шапке есть проблемы interlocked.hpp
одна из проблем решена вами, и ее легко решить, а другая — одна функция не объявлена как inline
, так что это сгенерирует ошибку компоновщика, но после их устранения AFAIK действительно работает без проблем
Других решений пока нет …