Существует глобальная функция, которая регистрирует сервисы:
// services call this to register upon creation
extern void RegisterService(adapter::Service *s);
Затем где-то в файле .cpp регистрируется какой-то сервис:
// create the adapter and register with libecap to reach the host application
static const bool Registered = (libecap::RegisterService(new Adapter::Service), true);
Почему регистрация не производится просто путем вызова libecap :: RegisterService (новый Adapter :: Service)?
Это выглядит еще более странно, потому что глобальная переменная зарегистрированный не используется
Потому что вы не можете поместить выражения в пустое пространство, плавающее в исходном файле. Только декларации.
Это распространенный способ заставить выражение вычисляться здесь, даже если полученный объект никогда не используется впоследствии.
Атеор кода хотел иметь флаг bool, который сообщит, была ли служба уже зарегистрирована. Он мог написать например
libecap::RegisterService(new Adapter::Service);
static const bool Registered = true;
при условии, что Registered является локальной переменной.
Но если Registered не является локальной переменной, он может не вызывать функцию вне какой-либо другой функции (или основной функции). Таким образом, единственный способ определить глобальную переменную bool (с внешней или внутренней связью) и одновременно вызвать функцию с возвращаемым типом void — это следующий
static const bool Registered = (libecap::RegisterService(new Adapter::Service), true);
Результат выражения оператора запятой имеет значение true, и Registered будет инициализироваться этим значением. И в то же время будет вызвана функция libecap :: RegisterService (новый Adapter :: Service).
В качестве альтернативы он мог определить класс, конструктор которого содержал бы вызов функции, а деструктор содержал бы некоторые незарегистрированные вещи.