考虑以下这个类:
#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限定符(一个为向量,另一个为方法)在上下文中没有任何意义吗?