namespace unordered { template <class K, class T, class H = boost::hash<K>, class P = std::equal_to<K>, class A = std::allocator<std::pair<const K, T> > > class unordered_map; template <class K, class T, class H = boost::hash<K>, class P = std::equal_to<K>, class A = std::allocator<std::pair<const K, T> > > class unordered_multimap; template <class T, class H = boost::hash<T>, class P = std::equal_to<T>, class A = std::allocator<T> > class unordered_set; template <class T, class H = boost::hash<T>, class P = std::equal_to<T>, class A = std::allocator<T> > class unordered_multiset; struct piecewise_construct_t {}; const piecewise_construct_t piecewise_construct = piecewise_construct_t(); }
namespace unordered { struct piecewise_construct_t {}; const piecewise_construct_t piecewise_construct = piecewise_construct_t(); }
template <class T1, class T2> struct is_pair< pair<T1, T2> > { static const bool value = true; }; template <class T1, class T2> struct is_pair< std::pair<T1, T2> > { static const bool value = true; }; struct pair_nat; struct piecewise_construct_t { }; static const piecewise_construct_t piecewise_construct = piecewise_construct_t(); /* template <class T1, class T2> struct pair { template <class U, class V> pair(pair<U, V>&& p); template <class... Args1, class... Args2> pair(piecewise_construct_t, tuple<Args1...> first_args, tuple<Args2...> second_args); template <class U, class V> pair& operator=(const pair<U, V>& p); pair& operator=(pair&& p) noexcept(is_nothrow_move_assignable<T1>::value && is_nothrow_move_assignable<T2>::value); template <class U, class V> pair& operator=(pair<U, V>&& p);