include/dbus-c++/dispatcher.h conditionally declares MutexFreeFn and MutexLockFn based on DBUS_HAS_RECURSIVE_MUTEX, but the macro isn't defined when the header is included by library users.
The signature mismatch causes Clang to throw the following errors:
In file included from /home/kaixiong/installs/dbus-c++/include/dbus-c++-1/dbus-c++/dbus.h:33:
In file included from /home/kaixiong/installs/dbus-c++/include/dbus-c++-1/dbus-c++/server.h:34:
/home/kaixiong/installs/dbus-c++/include/dbus-c++-1/dbus-c++/dispatcher.h:259:5: error: no matching function for call to '_init_threading'
_init_threading(
^~~~~~~~~~~~~~~
/home/kaixiong/installs/dbus-c++/include/dbus-c++-1/dbus-c++/dispatcher.h:249:13: note: candidate function not viable: no known conversion from 'void (DBus::Mutex )' to 'MutexFreeFn' (aka 'bool ()(DBus::Mutex *)') for 2nd argument
void DXXAPI _init_threading(
^
/home/kaixiong/installs/dbus-c++/include/dbus-c++-1/dbus-c++/dispatcher.h:247:13: note: candidate function not viable: requires 0 arguments, but 10 were provided
void DXXAPI _init_threading();