namespace foo
には、非常に静的なデータ、名前空間 - グローバルデータ、シングルトンなどがたくさんある(かなり大きい)C++モジュールが無数のファイルやディレクトリに広がっているとします。独立したバージョンを(同じプロセスで)実行するためには、その全体を「サンドボックス」する方法はありますか?実行されるバージョンの数は、実行時に決定されます。静的データを使用する名前空間をサンドボックスすることはできますか?
私はいくつかの名前空間(例:bar1::foo
、bar2::foo
、...)ですべてをラップすることを考えましたが、それはa)すべてのファイルに触れたくないのでb)できません。実行時に任意の数を持ちます。
アップデート:バージョンごとに別々のスレッドを作成できると思っていましたが、スレッドに精通しているとは思いません。
でのぞき見を取る:いいえ、私は 'foo'を書いていないとはい、私は静的/シングルトンは悪を知っています。 – bitmask
+1は、サードパーティのCインターフェイスで一度非常によく似た問題を抱えていました。良い解決策が見つかりませんでした(私の解決策には複数のマクロ生成名前空間が含まれていました)。 –