小编Reu*_*ond的帖子

C++ 11 Atomics.为什么要编译,而不是链接?

我正在尝试编写一个多生产者,多用户队列.我在Arch Linux上使用G ++ 4.6,它也打破了G ++ 4.7.

#include <atomic>
#include <condition_variable>
#include <memory>
#include <mutex>
#include <vector>
#include <iostream>
#include <string>
#include <sstream>

template <typename T> class concurrent_queue
{
  public:
  concurrent_queue(size_t n) : items(n), item_states(n), producer_index(0), consumer_index(0) {
  }
  virtual ~concurrent_queue () {
  }
  T * consume() {
    auto index = consumer_index;
    T * item = nullptr;
    state_t state = USED;

    // Extract item and block location.
    while (!item_states[index].compare_exchange_strong(state, BLOCKED, std::memory_order_acquire, std::memory_order_acquire)) {
      // Wait for an item to become available …
Run Code Online (Sandbox Code Playgroud)

c++ linker g++ c++11

7
推荐指数
1
解决办法
3515
查看次数

标签 统计

c++ ×1

c++11 ×1

g++ ×1

linker ×1