World Builder  0.1.0-pre
A geodyanmic initial conditions generator
array.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2018 by the authors of the World Builder code.
3 
4  This file is part of the World Builder.
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef _world_feature_types_array_h
21 #define _world_feature_types_array_h
22 
24 
25 
26 namespace WorldBuilder
27 {
28  namespace Types
29  {
40  class Array : public Interface
41  {
42  public:
46  Array(const Interface &type, const std::string &description);
47 
51  Array(const Array &type);
52 
56  Array(const std::vector<unsigned int> &inner_type_index, const Types::type inner_type, const std::string &description);
57 
58 
62  //template<class T>
63  //const T &operator[](const unsigned int index) const;
64 
65 
69  //Types::Interface
70  //T &operator[](const unsigned int index);
71 
72 
76  ~Array();
77 
78 
84  virtual
85  std::unique_ptr<Interface> clone() const;
86 
92 
102  std::unique_ptr<Interface> inner_type_ptr;
103 
113  std::vector<unsigned int> inner_type_index;
114 
119  std::string description;
120 
121  };
122  }
123 }
124 
125 #endif
Array(const Interface &type, const std::string &description)
Definition: array.cc:26
std::vector< unsigned int > inner_type_index
Definition: array.h:113
std::unique_ptr< Interface > inner_type_ptr
Definition: array.h:102
std::string description
Definition: array.h:119
virtual std::unique_ptr< Interface > clone() const
Definition: array.cc:59
Types::type inner_type
Definition: array.h:91