Google c ++ стиль кодирования не допускает нетривиальных статических объектов (и по причине) и, следовательно, не имеет синглетонов. В то же время синглтоны действительно представляют реальность логики приложения.
Итак, как правильно реализовать одноэлементную функциональность в стиле google:
(a) иметь статические указатели и инициализировать их при запуске как отдельный шаг (например, с помощью связанного списка классов инициализатора / создателя)
(б) иметь контекст, содержащий ссылки на все синглтоноподобные объекты и передавать его каждому методу
(c) иметь контекст, чтобы быть членом каждого класса
(г) что-то еще?