考虑这个类:
#include <vector>
class A {
private:
std::vector<int> m_vector;
public:
void insertElement(int i) {
m_vector.push_back(i);
}
const std::vector<int>& getVectorRef() const {
return m_vector;
}
};
方法getVectorRef
线程安全吗?
是否有可能在getVectorRef
另一个线程的返回过程中弹出并调用insertElement
,从而改变成员向量并且调用者getVectorRef
得到错误的 const 引用?
两个 const 限定符(一个用于向量,另一个用于方法)在线程安全的上下文中没有意义吗?