#include <cls_tags.hpp>
Формат:
{type [{abstract}] [{extensible}] [{subclassing_by_extension ...]}] [{super ...}] [{attr ...}]* [{extension ...}] [{cpp-mapping ...}] }
Открытые члены | |
tag_type_t (const char *tag_name, bool is_mandatory) | |
Такой конструктор нужен для tag_vector_of_tags_t. | |
const std::string & | query_type_name () const |
Определение имени типа. | |
bool | is_abstract () const |
Абстрактный ли тип? | |
bool | is_extensible () const |
Расширяемый ли тип? | |
bool | is_subclassing_by_extension () const |
Поддерживает ли тип subclassing_by_extension? | |
void | make_defined (const std::string &name, bool is_abstract, bool is_extensible) |
расширяемости. | |
const tag_extension_t * | extension () const |
Получить дочерний тег {extension}. | |
tag_extension_t & | make_extension () |
Создать дочерний тег {extension}. | |
void | turn_subclassing_by_extension_on () |
Создать дочерний тег {subclassing_by_extension}. | |
bool | is_extension_of (std::string &class_name) const |
Используется ли subclassing_by_extension. | |
void | derive_as_extension_of (const std::string &name) |
Указать, что тип производен как расширение от указанного типа. | |
Доступ к списку базовых типов. | |
const cls_2::tag_vector_of_tags_t< tag_base_t > & | query_bases () const |
cls_2::tag_vector_of_tags_t< tag_base_t > & | query_bases () |
Доступ к списку атрибутов. | |
const cls_2::tag_vector_of_tags_t< tag_attr_t > & | query_attrs () const |
cls_2::tag_vector_of_tags_t< tag_attr_t > & | query_attrs () |
Доступ к отображению в C++. | |
const tag_cpp_mapping_t & | query_cpp_mapping () const |
tag_cpp_mapping_t & | query_cpp_mapping () |
Закрытые типы | |
typedef cls_2::tag_scalar_t< std::string, cls_2::scalar_nonspace_format_t > | base_type_t |
Псевдоним для базового типа. | |
Закрытые данные | |
cls_2::tag_no_value_t | m_tag_abstract |
Абстрактность типа. | |
cls_2::tag_no_value_t | m_extensible |
Расширяемость типа. | |
cls_2::tag_no_value_t | m_subclassing_by_extension |
Поддержка типом subclassing_by_extension. | |
cls_2::tag_scalar_t< std::string, cls_2::scalar_nonspace_format_t > | m_extension_of |
Имя базового типа, от которого наследуемся как расширение. | |
cls_2::tag_vector_of_tags_t< tag_base_t > | m_tag_base |
Базовые типы. | |
cls_2::tag_vector_of_tags_t< tag_attr_t > | m_tag_attr |
Атрибуты. | |
tag_cpp_mapping_t | m_tag_cpp_mapping |
Отображение в C++. | |
tag_extension_wrapper_t | m_extension |
Расширение типа. |
void derive_as_extension_of | ( | const std::string & | name | ) |
Указать, что тип производен как расширение от указанного типа.
const tag_extension_t * extension | ( | ) | const |
Получить дочерний тег {extension}.
bool is_extensible | ( | ) | const |
Расширяемый ли тип?
bool is_extension_of | ( | std::string & | class_name | ) | const |
Используется ли subclassing_by_extension.
class_name | Если является чьим-то расширением, то сюда помещается имя расширенного суперкласса. |
bool is_subclassing_by_extension | ( | ) | const |
Поддерживает ли тип subclassing_by_extension?
tag_extension_t & make_extension | ( | ) |
Создать дочерний тег {extension}.
void turn_subclassing_by_extension_on | ( | ) |
Создать дочерний тег {subclassing_by_extension}.
cls_2::tag_no_value_t m_extensible [private] |
Расширяемость типа.
tag_extension_wrapper_t m_extension [private] |
Расширение типа.
cls_2::tag_scalar_t< std::string, cls_2::scalar_nonspace_format_t > m_extension_of [private] |
Имя базового типа, от которого наследуемся как расширение.
cls_2::tag_no_value_t m_subclassing_by_extension [private] |
Поддержка типом subclassing_by_extension.