{% if compound.templates != None or func.templates != None %} {% if func.include %} {% endif %}
{% if compound.templates != None %} {% set j = joiner(', ') %} template<{% for t in compound.templates %}{{ j() }}{{ t.type }} {% if t.name %}{{ t.name }}{% else %}_{{ loop.index }}{% endif %}{% endfor %}> {% endif %} {% if func.templates != None %} {% set j = joiner(', ') %} template<{% for t in func.templates %}{{ j() }}{{ t.type }}{% if t.name %} {{ t.name }}{% endif %}{% if t.default %} = {{ t.default }}{% endif %}{% endfor %}> {% endif %}
{% endif %} {% set j = joiner(',\n ') %} {{ func.prefix }}{{ func.type }} {{ prefix }}{{ func.name }}({% for param in func.params %}{{ j() }}{{ param.type_name }}{% if param.default %} = {{ param.default }}{% endif %}{% endfor %}){{ func.suffix }}{% if func.is_explicit %} explicit {% endif %}{% if func.is_final %} final{% elif func.is_override %} override{% elif func.is_pure_virtual %} pure virtual{% elif func.is_virtual %} virtual{% endif %}{% if func.is_protected %} protected{% if func.is_slot %} slot{% endif %}{% elif func.is_private %} private{% if func.is_slot %} slot{% endif %}{% elif func.is_signal %} signal{% elif func.is_slot %} public slot{% endif %}{% if func.is_defaulted %} defaulted{% endif %}{% if func.is_deleted %} deleted{% endif %}{% if func.is_constexpr %} constexpr{% endif %}{% if func.is_conditional_noexcept %} noexcept(…){% elif func.is_noexcept %} noexcept{% endif %}{% if func.since %} {{ func.since }}{% endif %} {% if func.include and compound.templates == None and func.templates == None %} {% endif %}

{% if func.brief %}

{{ func.brief }}

{% endif %} {% if func.has_template_details or func.has_param_details or func.return_value or func.return_values or func.exceptions %} {% if func.has_template_details %} {% for template in func.templates|selectattr('name') %} {{ template.name }} {% endfor %} {% endif %} {% if func.has_param_details %} {% for param in func.params|selectattr('name') %} {{ param.name }}{% if param.direction == 'in' %} in{% elif param.direction == 'out' %} out{% elif param.direction == 'inout' %} in/out{% endif %} {% endfor %} {% endif %} {% if func.return_value %} {{ '' if func.return_values or func.exceptions else '' }} Returns {{ '' if func.return_values or func.exceptions else '' }} {% elif func.return_values %} {% endif %} {% if func.return_values %} {% for value, description in func.return_values %} {{ value }} {% endfor %} {% endif %} {% if func.exceptions %} {% for exception, description in func.exceptions %} {{ exception }} {% endfor %} {% endif %}
Template parameters
{{ template.description }}
Parameters
{{ param.description }}
{{ func.return_value }}
Returns
{{ description }}
Exceptions
{{ description }}
{% endif %} {% if func.description %} {{ func.description }} {% endif %}