13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===// 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// The LLVM Compiler Infrastructure 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// This file is dual licensed under the MIT and the University of Illinois Open 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// Source Licenses. See LICENSE.TXT for details. 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===// 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// <list> 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// template <class Compare> sort(Compare comp); 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <list> 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <functional> 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <cassert> 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "min_allocator.h" 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyryint main() 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9}; 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int a2[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0])); 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry c1.sort(std::greater<int>()); 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(c1 == std::list<int>(a2, a2+sizeof(a2)/sizeof(a2[0]))); 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#if __cplusplus >= 201103L 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int a1[] = {4, 8, 1, 0, 5, 7, 2, 3, 6, 11, 10, 9}; 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int a2[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0])); 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry c1.sort(std::greater<int>()); 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert((c1 == std::list<int, min_allocator<int>>(a2, a2+sizeof(a2)/sizeof(a2[0])))); 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry