This incurs extra maintenance burden not to mention the introduction of a downcast helper, which was created to facilitate the use-case where a derived service object uses virtual inheritance.
It'd be good to compare our implementation against the one in Asio, which seems to only return void* in the case of -fno-rtti.
The service registry has a dependency on
type_index
which requires RTTI, so the code currently polyfills this via: https://github.com/cppalliance/http_proto/blob/develop/include/boost/http_proto/detail/type_index.hppThis incurs extra maintenance burden not to mention the introduction of a
downcast
helper, which was created to facilitate the use-case where a derivedservice
object usesvirtual
inheritance.It'd be good to compare our implementation against the one in Asio, which seems to only return
void*
in the case of-fno-rtti
.