Model of C++ concept. More...
#include <concept.h>
Public Member Functions | |
concept_ (const common::model::namespace_ &using_namespace) | |
concept_ (const concept_ &)=delete | |
concept_ (concept_ &&) noexcept=default | |
concept_ & | operator= (const concept_ &)=delete |
concept_ & | operator= (concept_ &&)=delete |
std::string | type_name () const override |
Get the elements type name. | |
std::string | full_name (bool relative=true) const override |
Return the elements fully qualified name. | |
std::string | full_name_no_ns () const override |
void | add_parameter (const method_parameter &mp) |
Add concept parameter. | |
const std::vector< method_parameter > & | requires_parameters () const |
Get concepts requires expression parameters. | |
void | add_statement (std::string stmt) |
Add a concept statement. | |
const std::vector< std::string > & | requires_statements () const |
Get the concepts requires statements. | |
Public Member Functions inherited from clanguml::common::model::element | |
element (namespace_ using_namespace, path_type pt=path_type::kNamespace) | |
~element () override=default | |
std::string | name_and_ns () const |
void | set_namespace (const namespace_ &ns) |
namespace_ | get_namespace () const |
namespace_ | get_relative_namespace () const |
const namespace_ & | path () const |
void | set_module (const std::string &module) |
std::optional< std::string > | module () const |
void | set_module_private (const bool module_private) |
bool | module_private () const |
std::string | full_name (bool relative) const override |
virtual std::string | full_name_no_ns () const |
const namespace_ & | using_namespace () const |
inja::json | context () const override |
Public Member Functions inherited from clanguml::common::model::diagram_element | |
diagram_element () | |
~diagram_element () override=default | |
const eid_t & | id () const |
Returns diagram element id. | |
void | set_id (eid_t id) |
std::optional< eid_t > | parent_element_id () const |
void | set_parent_element_id (eid_t id) |
virtual std::string | alias () const |
Return elements' diagram alias. | |
void | set_name (const std::string &name) |
std::string | name () const |
virtual std::string | type_name () const |
virtual std::string | full_name (bool) const |
Return the elements fully qualified name. | |
std::vector< relationship > & | relationships () |
const std::vector< relationship > & | relationships () const |
void | add_relationship (relationship &&cr) |
void | append (const decorated_element &e) |
virtual inja::json | context () const |
bool | is_nested () const |
void | nested (bool nested) |
bool | complete () const |
void | complete (bool completed) |
virtual void | apply_filter (const diagram_filter &filter, const std::set< eid_t > &removed) |
Public Member Functions inherited from clanguml::common::model::decorated_element | |
virtual | ~decorated_element ()=default |
bool | skip () const |
bool | skip_relationship () const |
std::pair< relationship_t, std::string > | get_relationship () const |
std::string | style_spec () const |
const std::vector< std::shared_ptr< decorators::decorator > > & | decorators () const |
void | add_decorators (const std::vector< std::shared_ptr< decorators::decorator > > &decorators) |
void | append (const decorated_element &de) |
std::optional< comment_t > | comment () const |
void | set_comment (const comment_t &c) |
virtual std::optional< std::string > | doxygen_link () const |
Public Member Functions inherited from clanguml::common::model::source_location | |
source_location ()=default | |
source_location (std::string f, unsigned int l) | |
const std::string & | file () const |
void | set_file (const std::string &file) |
const std::string & | file_relative () const |
void | set_file_relative (const std::string &file) |
const std::string & | translation_unit () const |
void | set_translation_unit (const std::string &translation_unit) |
unsigned int | line () const |
void | set_line (const unsigned line) |
unsigned int | column () const |
void | set_column (const unsigned column) |
unsigned int | location_id () const |
void | set_location_id (unsigned int h) |
Public Member Functions inherited from clanguml::common::model::stylable_element | |
void | set_style (const std::string &style) |
std::optional< std::string > | style () const |
Public Member Functions inherited from clanguml::common::model::template_trait | |
std::ostream & | render_template_params (std::ostream &ostr, const common::model::namespace_ &using_namespace, bool relative) const |
void | add_template (template_parameter &&tmplt) |
const std::vector< template_parameter > & | template_params () const |
int | calculate_template_specialization_match (const template_trait &other) const |
Wrapper around calculate_template_params_specialization_match() | |
Private Attributes | |
std::vector< std::string > | requires_expression_ |
std::vector< method_parameter > | requires_parameters_ |
std::vector< std::string > | requires_statements_ |
Friends | |
bool | operator== (const concept_ &l, const concept_ &r) |
clanguml::class_diagram::model::concept_::concept_ | ( | const common::model::namespace_ & | using_namespace | ) |
Definition at line 26 of file concept.cc.
|
delete |
|
defaultnoexcept |
void clanguml::class_diagram::model::concept_::add_parameter | ( | const method_parameter & | mp | ) |
Add concept parameter.
Concept class for convenience uses the same method parameter model as regular methods and functions.
mp | Concept parameter |
Definition at line 73 of file concept.cc.
void clanguml::class_diagram::model::concept_::add_statement | ( | std::string | stmt | ) |
|
overridevirtual |
Return the elements fully qualified name.
This method should be implemented in each subclass, and ensure that for instance it includes fully qualified namespace, template params, etc.
Reimplemented from clanguml::common::model::diagram_element.
Definition at line 49 of file concept.cc.
|
overridevirtual |
Return elements full name but without namespace.
Reimplemented from clanguml::common::model::element.
Definition at line 36 of file concept.cc.
const std::vector< method_parameter > & clanguml::class_diagram::model::concept_::requires_parameters | ( | ) | const |
Get concepts requires expression parameters.
Definition at line 78 of file concept.cc.
const std::vector< std::string > & clanguml::class_diagram::model::concept_::requires_statements | ( | ) | const |
Get the concepts requires statements.
Definition at line 88 of file concept.cc.
|
inlineoverridevirtual |
Get the elements type name.
Reimplemented from clanguml::common::model::diagram_element.
Definition at line 51 of file concept.h.
Definition at line 31 of file concept.cc.
|
private |
|
private |
|
private |