c++11 では、クラス内の静的メンバー変数はスレッド境界を越えて適切に機能しますか? DLL の境界はどうですか?
これは、私が尋ねる原因となるクラスの大まかなカットです。
class IndexedEvent
{
public:
//constructor that is used the very first time an
//instance of this class is constructed
IndexedEvent(Event* ev, int res):point(ev),resolution(res){calculateIndex();}
//constructor to be used every time after that
IndexedEvent(Event* ev):point(ev){calculateIndex();}
...some more member functions...
private:
...some more member functions...
static int resolution;
Event* point;
Index calcIndex;
}
プログラム実行の最初に解決を設定した場合、他のスレッドは、この値が正しく設定されたこの IndexedEvent のインスタンスを作成できますか? インポートされた dll の関数は、解像度が正しく設定されたインスタンスを作成できますか?
それが機能しない場合、またはジャンプする必要があるフープが原因で実行できない場合は、IndexedEvent のファクトリ クラスを作成し、演算子 new を介してこのクラスの新しいインスタンスを作成する代わりに、呼び出しでそれらを作成することで解決できますか?ファクトリークラスに?