我需要一些线程安全的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中的某个地方。那么,我应该继续上课还是重建自行车?