<commit_before>#ifndef RDESTL_PAIR_H
#define RDESTL_PAIR_H

#include "type_traits.h"

namespace rde
{
//=============================================================================
template<typename T1, typename T2>
struct pair
{
	typedef T1	first_type;
	typedef T2	second_type;

	pair() {/**/}
	pair(const T1& a, const T2& b):	first(a), second(b) {/**/}
	explicit pair(const T1& a):	first(a) {/**/}

    pair(const pair<T1,T2>& rhs) : first(rhs.first), second(rhs.second) {/**/}
    
    pair& operator=(const pair<T1,T2>& rhs) 
    {
        first = rhs.first;
        second = rhs.second;
        return *this;
    }
    
	T1	first;
	T2	second;
};

//=============================================================================
// Pair is POD if every element is POD/fundamental
template<typename T1, typename T2> struct is_pod<pair<T1, T2> >
{<commit_msg>Added move constructor/assignment op to pair structure<commit_after>#ifndef RDESTL_PAIR_H
#define RDESTL_PAIR_H

#include "type_traits.h"

namespace rde
{
//=============================================================================
template<typename T1, typename T2>
struct pair
{
	typedef T1	first_type;
	typedef T2	second_type;

	pair() {/**/}
	pair(const T1& a, const T2& b):	first(a), second(b) {/**/}
	explicit pair(const T1& a):	first(a) {/**/}

    pair(const pair<T1,T2>& rhs) : first(rhs.first), second(rhs.second) {/**/}
    pair(pair<T1, T2>&& rhs) : first(std::move(rhs.first)), second(std::move(rhs.second)) {/**/ }
    
    pair& operator=(const pair<T1,T2>& rhs) 
    {
        first = rhs.first;
        second = rhs.second;
        return *this;
    }
    pair& operator=(pair<T1, T2>&& rhs)
    {
        first = std::move(rhs.first);
        second = std::move(rhs.second);
        return *this;
    }
    
	T1	first;
	T2	second;
};

//=============================================================================
// Pair is POD if every element is POD/fundamental
template<typename T1, typename T2> struct is_pod<pair<T1, T2> >
{
{'fraction_non_alphanumeric': 0.2916045702930949, 'fraction_numerical': 0.018877297565822158, 'mean_word_length': 3.9121951219512194, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3117037', 'n_tokens_mistral': 725, 'n_tokens_neox': 692, 'n_words': 157}