Consider this function compiling with g++ -std=c++11
(GCC 4.7.2):
boost::uuids::uuid getID()
{
static boost::uuids::random_generator generator;
return generator();
}
Is it safe to call getID
from multiple threads?
As it is mentioned here the local static object definition at the first line is thread safe according to the C++11 standard. The question is if the call to boost::uuids::random_generator::operator()
on the same object generator
at the second line is also thread safe. Will the returned UUIDs be unique in the sense they would be in a single thread?