🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprContainer.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "Expr.hpp"
25#include "AstUtil/SharedPtr.hpp"
26#include <vector>
27
28AST_NAMESPACE_BEGIN
29
30
33class ExprContainer: public Expr
34{
35public:
36 using VectorType = std::vector<SharedPtr<Expr>>;
37
38 ExprContainer() = default;
39
40 ExprContainer(const VectorType& elems)
41 : elems_(elems) {}
42
46 Expr* at(size_t index) const { return elems_[index].get(); }
47
50 size_t size() const { return elems_.size(); }
51
54 void push_back(Expr* expr) { elems_.push_back(expr); }
55
58 const VectorType& children() const { return elems_; }
59protected:
60 VectorType elems_;
61};
62
63AST_NAMESPACE_END
表达式容器类
定义 ExprContainer.hpp:34
size_t size() const
获取向量元素数量
定义 ExprContainer.hpp:50
Expr * at(size_t index) const
获取向量元素
定义 ExprContainer.hpp:46
void push_back(Expr *expr)
添加表达式到容器
定义 ExprContainer.hpp:54
const VectorType & children() const
获取表达式容器
定义 ExprContainer.hpp:58
VectorType elems_
表达式容器
定义 ExprContainer.hpp:60
表达式基类
定义 Expr.hpp:39