线程安全值类型是否已经存在于标准库的某个位置?

时间:2016-01-07 19:17:54

标签: c++

我需要一些线程安全的int和浮点数,我想我会为它们构建一个模板类,就像这样开始:

template <typename T>
struct MutexValue {
    T Value;
    std::mutex Mutex;
    MutexValue(T Value) { this->Value = Value; }

    MutexValue& operator=(const MutexValue &rhs) {
        Mutex.lock();
        Value = rhs.Value;
        Mutex.unlock();
        return *this;
    }
};

然后我将为它编写所有其他运算符(假设T是一个简单的数值数据类型),但后来我发现这种事情应该相当普遍,并且可能已经存在于std中的某个地方。那么,我应该继续上课还是重建自行车?

1 个答案:

答案 0 :(得分:4)

我相信,您正在寻找std::atomic类型的家庭。