ROSE 0.11.145.229
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Rose::AST::Defects::defect_t< Kind::any > Struct Referenceabstract

Description

Defect descriptor specialization for the default kind "any".

Attention
The name of this class violates the ROSE naming convention (not PascalCase). Users should not use this class until this is fixed since the change will be API breaking.

All other defect descriptors must inherit from this descritor. It provides a static method record which should always be used to create a defect descriptor. This method collects all descriptors and return const references. Hence, all defect descriptors can be deleted by a call to clear.

Definition at line 52 of file Defect.h.

#include <Rose/AST/Defect.h>

Inheritance diagram for Rose::AST::Defects::defect_t< Kind::any >:
Inheritance graph
[legend]
Collaboration diagram for Rose::AST::Defects::defect_t< Kind::any >:
Collaboration graph
[legend]

Public Types

using self_t = defect_t< Kind::any >
 

Public Member Functions

 defect_t (Kind kind_)
 
virtual void print (std::ostream &out) const =0
 

Static Public Member Functions

template<Kind k, typename... Args>
static defect_t< k > const & record (Args... args)
 Call new for the specific kind of defect, forwards all argument to the constructor. Add pointer to all.
 
template<typename DefectT , typename... Args>
static DefectT const & record (Args... args)
 Call new for the specific defect type, forwards all argument to the constructor (requires the specialization to declare __kind)
 
static void clear ()
 Delete all stored defect and clear the container.
 
static void display (std::ostream &out)
 

Public Attributes

Kind kind
 

Static Public Attributes

static std::set< self_t * > all
 Set of all defects.
 

Member Typedef Documentation

◆ self_t

Definition at line 53 of file Defect.h.

Member Function Documentation

◆ record() [1/2]

template<Kind k, typename... Args>
static defect_t< k > const & Rose::AST::Defects::defect_t< Kind::any >::record ( Args...  args)
inlinestatic

Call new for the specific kind of defect, forwards all argument to the constructor. Add pointer to all.

Definition at line 60 of file Defect.h.

◆ record() [2/2]

template<typename DefectT , typename... Args>
static DefectT const & Rose::AST::Defects::defect_t< Kind::any >::record ( Args...  args)
inlinestatic

Call new for the specific defect type, forwards all argument to the constructor (requires the specialization to declare __kind)

Definition at line 68 of file Defect.h.

Member Data Documentation

◆ all

std::set<self_t *> Rose::AST::Defects::defect_t< Kind::any >::all
static

Set of all defects.

Definition at line 56 of file Defect.h.

◆ kind

Definition at line 72 of file Defect.h.


The documentation for this struct was generated from the following file: