4

このクラスを考えてみましょう:

#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 参照を取得するような呼び出しが行われる可能性はありますか?

2 つの const 修飾子 (1 つはベクトル用、もう 1 つはメソッド用) は、スレッド セーフのコンテキストでは意味がありませんか?

4

1 に答える 1