72 static const size_t tuple_size = N;
75 typedef const T* const_iterator;
79 UniTuple() : start(this->arr), init(
nullptr){
84 template<
typename ... TT>
86 UniTuple(
const TT &... args) : start(this->arr), init(
nullptr){
102 UniTuple(std::initializer_list<S> l) : start(this->arr), init(nullptr){
111 tuple_t & operator=(
const tuple_t &t){
118 tuple_t & operator=(
const value_type & value){
125 tuple_t & operator=(std::initializer_list<S> l){
134 const_iterator begin() const override final {
140 const_iterator end() const override final {
146 iterator begin() override final {
153 iterator end() override final {
161 const tuple_t & tuple()
const{
172 template<
typename ... TT>
174 tuple_t & tuple(
const TT &... args){
184 void debug(std::ostream & ostr)
const {
185 ostr <<
"UniTuple<" <<
typeid(T).name() <<
sizeof(T) <<
',' << N <<
">: {" << *
this <<
'}';
191 const iterator start;
204 return *(init=begin());
206 else if (init==end()){
207 std::cerr << __FILE__ <<
':' << __FUNCTION__ <<
"warning: exceeded inits: " << *
this << std::endl;
208 return *(init=begin());
217 UniTuple(UniTuple<T,N2> &tuple,
size_t i): start(tuple.begin()+i), init(nullptr){
tuplebase_t & assignSequence(T &sequence, bool LENIENT=false)
Proposed for tuples only; derived classes should not shadow this.
Definition TupleBase.h:287