stdpair_as_pair.h

Back to As_Pair concept map

pastel/sys/

// Description: std::pair as a Pair
// Documentation: as_pair.txt

#ifndef PASTELSYS_STDPAIR_AS_PAIR_H
#define PASTELSYS_STDPAIR_AS_PAIR_H

#include "pastel/sys/as_pair_concept.h"

namespace Pastel
{

    class StdPair_As_Pair
    {
    public:
        template <typename StdPair>
        class ConceptMap
        {
        public:
            using Left = typename StdPair::first_type;
            using Right = typename StdPair::second_type;
            using Type = StdPair;

            Left& left(Type& that)
            {
                return that.first;
            }

            const Left& left(const Type& that)
            {
                return that.first;
            }

            Right& right(Type& that)
            {
                return that.second;
            }

            const Right& right(const Type& that)
            {
                return that.second;
            }            
        };
    };

}

#endif