title: C++ singleton implementation, double-checked locking
body: <p>I heard and read a lot about singleton implementation approaches in C++, like Meyer, Phoenix, etc., but all of them seemed to have a problem in certain usage scenarios. So I came up with my own implementation approach, the <a href="http://danielsingleton.codeplex.com/documentation" rel="nofollow">Daniel Singleton</a>. What I would like to know is if it's correct or not... I think it is, but please tell me if it has any flaws I did not think of!</p>
  
  <p>Also, I tried to make it thread-safe without acquiring locks all the time by using double-checked locking, which I read a lot about too, and everybody stated that it's broken. I tried to fix that too, and I'd like to know if my solution is correct or not... and if it's not, then how can it fail?</p>