1#ifndef _SIM_STL_PAIR 2#define _SIM_STL_PAIR 3 4#pragma clang system_header 5 6#include "sim_type_traits" 7 8namespace std { 9 10template <class T1, class T2> 11struct pair { 12 T1 first; 13 T2 second; 14 15 pair() : first(), second() {} 16 pair(const T1 &a, const T2 &b) : first(a), second(b) {} 17 18 template<class U1, class U2> 19 pair(const pair<U1, U2> &other) : first(other.first), 20 second(other.second) {} 21}; 22 23template <typename T1, typename T2> 24pair<typename remove_reference<T1>::type, typename remove_reference<T2>::type> 25make_pair(T1 &&, T2 &&) { 26 return {}; 27}; 28 29} // namespace std 30 31#endif // _SIM_STL_PAIR 32 33