ROSE  0.11.145.0
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 Template Referenceabstract

Description

template<>
struct Rose::AST::Defects::defect_t< Kind::any >

Defect descriptor specialization for the default kind "any".

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 39 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.
 

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