Singletons
| // Very bad because the destruction order is not specified. | |
| // From experience, these are one of the hardest to debug bugs. | |
| template <class T> | |
| T BadSingleton() { | |
| static T t; | |
| return t; | |
| } | |
| // Better. It is NOT a leak because the compiler will clear it after the shutdown. | |
| // Downside -- destuctors are not called. But you should never do complicated | |
| // things in destructors. | |
| template <class T> | |
| T BetterSingleton() { | |
| static T* t = new T(); | |
| return *t; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment