зачем использовать указатели?
static void handle_request(int x) {
static A instance;
instance.HandleRequest(x);
}
(То же самое относится и к Bar
), хотя, если честно, вы можете также вызвать метод в Bar
напрямую (если перенаправление через A
В качестве альтернативы, вместо свободной функции, передайте указатель на статическую функцию в A
, совпадающую с той же сигнатурой - внутри нее вы можете получить доступ к единственному экземпляру A
для использования ...
кстати.некоторые API используют шаблон, где во время регистрации вы можете передать указатель на некоторые пользовательские данные, которые передаются в обратном вызове, это может быть, например, указатель на экземпляр A
для обработки обратного вызова - таким образом вы можете избежатьвесь синглтон бизнес ...