MemoryManager cannot use the Singleton class because MemoryManager::initialize is called before the global constructors are run. That caused the Singleton to be re-initialized, causing it to create another MemoryManager instance. Fixes #3226
This reverts commit f0906250a1.
f0906250a1
This reverts commit 5a98e329d1.
5a98e329d1
Just default the InitFunction template argument.