[#MRDOCS_DESCRIBE_KINDS_END] = MRDOCS_DESCRIBE_KINDS_END :mrdocs: Close a kinds description opened with `MRDOCS_DESCRIBE_KINDS_BEGIN`. == Synopsis Declared in `<mrdocs/Support/Reflection/Describe.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- #define MRDOCS_DESCRIBE_KINDS_END(C) ---- == Description It closes the call the opening macro left open and names the descriptor function it declares, which registers the kinds for `C`: [,cpp] ---- #define INFO(Name) MRDOCS_KIND_ENTRY(Shape, Name##Shape) MRDOCS_DESCRIBE_KINDS_BEGIN(Shape) #include "ShapeNodes.inc" MRDOCS_DESCRIBE_KINDS_END(Shape) ---- [,cpp] ---- // MRDOCS_DESCRIBE_KINDS_END(Shape) expands to exactly: )) mrdocs_kind_descriptor_fn(Shape**) { return {}; } ---- `C` has to match the one passed to `MRDOCS_DESCRIBE_KINDS_BEGIN`, since this is where the function's parameter type, and so the base the kinds get registered for, comes from. It ends with a function body, so it needs no trailing `;`. See `MRDOCS_DESCRIBE_KINDS_BEGIN` for a complete example. == Parameters [cols="1,4"] |=== | Name| Description | *C* | The polymorphic base class. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#