On Jon's site he has thisvery elegantly designed singleton in C# that looks like this:
public sealed class Singleton
{
    Singleton()
    {
    }
    public static Singleton Instance
    {
        get
        {
            return Nested.instance;
        }
    }
    class Nested
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static Nested()
        {
        }
        internal static readonly Singleton instance = new Singleton();
    }
}
I was wondering how one would code the equivalent in C++? I have this but I am not sure if it actually has the same functionality as the one from Jon. (BTW this is just a Friday exercise, not needed for anything particular).
class Nested;
class Singleton
{
public:
  Singleton() {;}
  static Singleton& Instance() { return Nested::instance(); }
  class Nested
  { 
  public:
    Nested() {;}
    static Singleton& instance() { static Singleton inst; return inst; }
  };
};
...
Singleton S = Singleton::Instance();
 
     
     
     
     
    
I'd think people had something to do on the weekends other than more work– Matthew Scharley Oct 30 '09 at 08:58