53 #include <type_traits> 64 std::unique_ptr<PolyTableImpl> impl;
68 using pos_container_t = std::vector<double>;
70 using geno_container_t = std::vector<std::string>;
74 using reference = geno_container_t::reference;
76 using const_reference = geno_container_t::const_reference;
78 using size_type = geno_container_t::size_type;
82 using data_iterator = geno_container_t::iterator;
86 using const_data_iterator = geno_container_t::const_iterator;
90 using pos_iterator = std::vector<double>::iterator;
94 using const_pos_iterator = std::vector<double>::const_iterator;
103 using const_site_iterator = Sequence::polySiteVector::const_iterator;
104 using row_t = geno_container_t::value_type;
105 using column_t = const_site_iterator::value_type;
108 data_iterator begin();
112 const_data_iterator begin()
const;
114 const_data_iterator end()
const;
116 const_data_iterator cbegin()
const;
118 const_data_iterator cend()
const;
120 pos_iterator pbegin();
124 const_pos_iterator pbegin()
const;
126 const_pos_iterator pend()
const;
128 const_pos_iterator pcbegin()
const;
130 const_pos_iterator pcend()
const;
132 const_site_iterator sbegin()
const;
134 const_site_iterator send()
const;
136 const_site_iterator scbegin()
const;
138 const_site_iterator scend()
const;
141 explicit PolyTable();
142 explicit PolyTable(PolyTable::const_site_iterator beg,
143 PolyTable::const_site_iterator end);
144 explicit PolyTable(std::vector<double> __positions,
145 std::vector<std::string> __data);
146 PolyTable(PolyTable &&);
147 PolyTable(
const PolyTable &);
148 virtual ~PolyTable(
void);
151 std::vector<double> GetPositions(
void)
const;
153 std::vector<std::string> GetData(
void)
const;
158 virtual bool operator==(
const PolyTable &rhs)
const;
160 virtual bool operator!=(
const PolyTable &rhs)
const;
162 PolyTable &operator=(PolyTable &&);
164 PolyTable &operator=(
const PolyTable &);
169 const_reference operator[](
const size_type &i)
const;
174 reference operator[](
const size_type &i);
189 bool assign(PolyTable::const_site_iterator beg,
190 PolyTable::const_site_iterator end);
193 void swap(PolyTable &);
198 bool assign(
const std::vector<double> &__positions,
199 const std::vector<std::string> &__data);
204 bool assign(std::vector<double> &&__positions,
205 std::vector<std::string> &&__data);
208 size_type size(
void)
const;
211 double position(
const std::vector<double>::size_type &i)
const;
214 unsigned numsites(
void)
const;
222 virtual std::istream &read(std::istream &h) = 0;
230 virtual std::ostream &print(std::ostream &h)
const = 0;
238 std::istream &
operator>>(std::istream &s, PolyTable &c);
245 std::ostream &
operator<<(std::ostream &o,
const PolyTable &c);
The namespace in which this library resides.
class __attribute__((deprecated)) FST
Functor to count the number of states, excluding gaps and missing data, in a range of characters...
std::ostream & operator<<(std::ostream &s, const AlignStream< T > &c)
Site-major variation tables in ASCII format.
std::istream & operator>>(std::istream &s, AlignStream< T > &c)