https://github.com/ITensor/ITensor
Raw File
Tip revision: e2c6ea98c5d68dee7ad38c16a7f71574a46589e0 authored by Miles Stoudenmire on 20 August 2015, 19:47:53 UTC
Shortened some type names in cplx_literal.h and names of constants in global.h
Tip revision: e2c6ea9
iterpair.h
//
// Distributed under the ITensor Library License, Version 1.0.
//    (See accompanying LICENSE file.)
//
#ifndef __ITENSOR_ITERPAIR_H
#define __ITENSOR_ITERPAIR_H

namespace itensor {

template <typename _Iter>
struct IterPair
    {
    using iterator = _Iter;
    using const_iterator = _Iter;

    IterPair() {}

    IterPair(const _Iter& b,
             const _Iter& e)
        : 
        begin_(b),
        end_(e)
        {}


    template <typename _I>
    IterPair(const IterPair<_I>& IP)
        : 
        begin_(IP.begin_),
        end_(IP.end_)
        {}

    IterPair(_Iter&& b,
             _Iter&& e)
        : 
        begin_(b),
        end_(e)
        {}

    template <typename _I>
    IterPair(IterPair<_I>&& IP)
        : 
        begin_(IP.begin_),
        end_(IP.end_)
        {}

    _Iter
    begin() const { return begin_; }

    _Iter
    end() const { return end_; }

    private:
    _Iter begin_,
          end_;

    };

} //namespace itensor

#endif

back to top