I've been looking all around SO and MSDN for an answer to this question, but cannot seem to find a clear and final answer...
I know that it's in the C++11 standard and that current GCC version behave this way, but does VC2010 currently guarantees thread-safety of a local static variable initialization?
i.e.: Is this thread-safe with VC2010?
static S& getInstance()
{
static S instance;
return instance;
}
...And if not, what is the current best practice to get a thread-safe singleton implementation in C++ with VC2010?
EDIT: As pointed out by Chris Betti's answer, VC2010 doesn't implement thread-safeness of local static variable init.
See Question&Answers more detail:os