int main() { typedef std::pair<const int, int> KV; { typedef limited_allocator<KV, 10> A; typedef std::unordered_multimap<int, int, std::hash<int>, std::equal_to<int>, A> C; C c; assert(c.max_size() <= 10); LIBCPP_ASSERT(c.max_size() == 10); } { typedef limited_allocator<KV, (size_t)-1> A; typedef std::unordered_multimap<int, int, std::hash<int>, std::equal_to<int>, A> C; const C::difference_type max_dist = std::numeric_limits<C::difference_type>::max(); C c; assert(c.max_size() <= max_dist); LIBCPP_ASSERT(c.max_size() == max_dist); } { typedef std::unordered_multimap<char, int> C; const C::difference_type max_dist = std::numeric_limits<C::difference_type>::max(); C c; assert(c.max_size() <= max_dist); assert(c.max_size() <= alloc_max_size(c.get_allocator())); } }
int main(int, char**) { typedef std::pair<const int, int> KV; { typedef limited_allocator<KV, 10> A; typedef std::map<int, int, std::less<int>, A> C; C c; assert(c.max_size() <= 10); LIBCPP_ASSERT(c.max_size() == 10); } { typedef limited_allocator<KV, (size_t)-1> A; typedef std::map<int, int, std::less<int>, A> C; const C::size_type max_dist = static_cast<C::size_type>(std::numeric_limits<C::difference_type>::max()); C c; assert(c.max_size() <= max_dist); LIBCPP_ASSERT(c.max_size() == max_dist); } { typedef std::map<char, int> C; const C::size_type max_dist = static_cast<C::size_type>(std::numeric_limits<C::difference_type>::max()); C c; assert(c.max_size() <= max_dist); assert(c.max_size() <= alloc_max_size(c.get_allocator())); } return 0; }
int main() { { typedef limited_allocator<int, 10> A; typedef std::multiset<int, std::less<int>, A> C; C c; assert(c.max_size() <= 10); LIBCPP_ASSERT(c.max_size() == 10); } { typedef limited_allocator<int, (size_t)-1> A; typedef std::multiset<int, std::less<int>, A> C; const C::difference_type max_dist = std::numeric_limits<C::difference_type>::max(); C c; assert(c.max_size() <= max_dist); LIBCPP_ASSERT(c.max_size() == max_dist); } { typedef std::multiset<char> C; const C::difference_type max_dist = std::numeric_limits<C::difference_type>::max(); C c; assert(c.max_size() <= max_dist); assert(c.max_size() <= alloc_max_size(c.get_allocator())); } }