Thread-safe Singleton class I have created this class to simulate a thread-safe Singleton.

Have I missed anything?

#include &lt;boost/thread/mutex.hpp&gt;

class Singleton
{
public:
  static Singleton&amp; GetInstance()
  {
    boost::mutex::scoped_lock lock(m_mutex);
    static Singleton instance;
    return instance;
  }

private:
  static boost::mutex m_mutex;

  Singleton() {}
  ~Singleton() {}

  Singleton(const Singleton&amp;);
  const Singleton&amp; operator=(const Singleton&amp;);
};
As usual, when dealing with singletons, consider that you probably shouldn't be making a singleton at all.

Read this, for example. A singleton is almost certainly not what you actually need, even if it is implemented correctly and in a thread-safe manner.

A plain old global might be a better option, or perhaps you should simply pass a reference around to those who need it.