API documentation refinements

This commit is contained in:
Norman Feske
2017-05-24 14:41:19 +02:00
committed by Christian Helmuth
parent 3c785a4ffb
commit adb26b5216
34 changed files with 128 additions and 41 deletions

View File

@ -144,8 +144,8 @@ struct Genode::Registry : private Registry_base
* Using this helper, an arbitrary type can be turned into a registry element
* type. E.g., in order to keep 'Child_service' objects in a registry, a new
* registry-compatible type can be created via 'Registered<Child_service>'.
* Objects of this type can be kept in a 'Registry<Registered<Child_service>
* >'. The constructor of such "registered" objects expect the registry as the
* Objects of this type can be kept in a 'Registry<Registered<Child_service> >'.
* The constructor of such "registered" objects expect the registry as the
* first argument. The other arguments are forwarded to the constructor of the
* enclosed type.
*/
@ -158,6 +158,11 @@ class Genode::Registered : public T
public:
/**
* Compile-time check
*
* \noapi
*/
static_assert(__has_virtual_destructor(T), "registered object must have virtual destructor");
template <typename... ARGS>
@ -169,9 +174,10 @@ class Genode::Registered : public T
/**
* Variant of Registered that does not require a vtable in the base class
*
* The generic Registered convenience class requires the base class to provide
* a vtable resp. a virtual destructor for safe deletion of a base class
* pointer. By using Registered_no_delete this requirement can be lifted.
* The generic 'Registered' convenience class requires the base class to
* provide a vtable resp. a virtual destructor for safe deletion of a base
* class pointer. By using 'Registered_no_delete', this requirement can be
* lifted.
*/
template <typename T>
class Genode::Registered_no_delete : public T