考虑这个类:
#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 限定符(一个用于向量,另一个用于方法)在线程安全的上下文中没有意义吗?