This is a constant pointer which is declared without initialization like this in http_log.h:
static int * const aplog_module_index; Unfortunately that's not valid C++ since there is no initializer. Three of the four C++ compilers I tried consider that a fatal error. Unfortunately, as I guess Stefan knows, it is tricky to make this work in C too, and there does't seem to be much leeway. Meanwhile, after removing "const" at least one of the C++ compilers I'm trying generates a fatal error at the duplicate places aplog_module_index is declared (when you use APLOG_USE_MODULE and also include http_log.h). My gut feel is that to get along with the wide array of C and C++ compilers out there we'll have to get less tricky, even if it means a hard requirement to declare APLOG_USE_MODULE everywhere.
