gcc と c++ (pre c++11 と post) を使用したローカル スタティックの動作を理解しようとしています。多くの場合、メンバー関数で次のようなことをしていることに気づきます。
struct Foo
{
void foo()
{
static const bool bar = someFunc();
//etc
}
};
たとえば、 はどこにsomeFunc()ありますかgetenv("SOME_ENV_VAR")。上記のコードで、 を管理するルールは何barですか? 上記のローカル静的を複数のスレッドから保護するために、gccが同期メカニズムをコンパイルする(何がわからない)と信じていますが、参照はありません。それがなくなったら、物事はどのように変化しconstますか?または、それをスレッドローカルにすると__thread? そしてfoo()メンバー関数ではない場合は?