g++ -std=c++11
この関数を(GCC 4.7.2)でコンパイルすることを検討してください。
boost::uuids::uuid getID()
{
static boost::uuids::random_generator generator;
return generator();
}
getID
複数のスレッドから呼び出しても安全ですか?
ここで言及されているように、最初の行のローカル静的オブジェクト定義は、C++11 標準に従ってスレッドセーフです。boost::uuids::random_generator::operator()
問題は、2 行目の同じオブジェクトに対する呼び出しgenerator
もスレッドセーフかどうかです。返された UUID は、単一のスレッドにあるという意味で一意になりますか?