+ std::string name_;
+ ///
+ ParamType type_;
+ /// do we need special handling on latex output?
+ ParamHandling handling_;
+ };
+
+ /// adds a new parameter
+ void add(std::string const & name, ParamType type,
+ ParamHandling = HANDLING_NONE);
+ ///
+ bool empty() const { return info_.empty(); }
+ ///
+ size_t size() const { return info_.size(); }
+ ///
+ typedef std::vector<ParamData>::const_iterator const_iterator;
+ ///
+ const_iterator const begin() const { return info_.begin(); }
+ ///
+ const_iterator const end() const { return info_.end(); }
+ /// \return true if name corresponds to a parameter of some sort.
+ /// \return false if the parameter does not exist at all of it it
+ bool hasParam(std::string const & name) const;
+ ///
+ ParamData const & operator[](std::string const & name) const;
+ ///
+ bool operator==(ParamInfo const &) const;
+private:
+ ///
+ std::vector<ParamData> info_;