https://github.com/ITensor/ITensor
Raw File
Tip revision: 127526447e9a22be1b847ff5703fd80b055e0941 authored by Miles Stoudenmire on 07 July 2016, 15:45:24 UTC
Made SiteSet operator string parsing recursive, now supports "A*B*C*D*..."
Tip revision: 1275264
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