Search code examples
coding-stylesingleton

singletons and google coding-style


Google c++ coding-style does not allow non-trivial static objects (and for a reason) and hence no singletons. At the same time singletons do represent reality of application logic.

So what is the correct way to implement singleton functionality google-style:
(a) have static pointers and initialize them on startup as a separate step (e.g. by linked list of initializer/maker classes)
(b) have context holding references to all singleton-like object and pass it with every method (c) have context to be member of every class
(d) something else?


Solution

  • The "Google C++ Style Guide" does mention "Types representing singleton objects (Registerer)"

    You can see an implementation of said registerer in ronaflx/cpp-utility with "util/registerer.h" for function pointers (illustrated here), and util/singleton.h for classic singleton.

    The OP points to their own project alex4747-pub/proper_singleton.