retdec
struct_type.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_CTYPES_STRUCT_TYPE_H
8 #define RETDEC_CTYPES_STRUCT_TYPE_H
9 
10 #include <memory>
11 #include <string>
12 
14 
15 namespace retdec {
16 namespace ctypes {
17 
18 class Context;
19 
24 {
25  public:
26  static std::shared_ptr<StructType> create(
27  const std::shared_ptr<Context> &context,
28  const std::string &name, const Members &members
29  );
30 
31  virtual bool isStruct() const override;
32 
35  virtual void accept(Visitor *v) override;
37 
38  private:
39  // Instances are created by static method create().
40  StructType(const std::string &name, const Members &members);
41 };
42 
43 } // namespace ctypes
44 } // namespace retdec
45 
46 #endif
A representation of composite type.
Definition: composite_type.h:26
std::vector< Member > Members
Definition: composite_type.h:28
Members members
Definition: composite_type.h:52
A representation of struct types.
Definition: struct_type.h:24
StructType(const std::string &name, const Members &members)
Constructs a new struct type.
Definition: struct_type.cpp:22
virtual void accept(Visitor *v) override
Visitor pattern implementation.
Definition: struct_type.cpp:63
virtual bool isStruct() const override
Definition: struct_type.cpp:58
static std::shared_ptr< StructType > create(const std::shared_ptr< Context > &context, const std::string &name, const Members &members)
Creates struct type.
Definition: struct_type.cpp:38
std::string name
Definition: type.h:48
A base class of all C-types' visitors.
Definition: visitor.h:33
A representation of composite types.
Definition: archive_wrapper.h:19