1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project//===----------------------------------------------------------------------===// 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// 3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// The LLVM Compiler Infrastructure 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// This file is dual licensed under the MIT and the University of Illinois Open 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// Source Licenses. See LICENSE.TXT for details. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project//===----------------------------------------------------------------------===// 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// <queue> 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// template <class T, class Container = vector<T>, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// class Compare = less<typename Container::value_type>> 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// class priority_queue 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// { 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// public: 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// typedef Container container_type; 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// typedef typename container_type::value_type value_type; 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// typedef typename container_type::reference reference; 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// typedef typename container_type::const_reference const_reference; 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// typedef typename container_type::size_type size_type; 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// protected: 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// container_type c; 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// Compare comp; 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <queue> 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <cassert> 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <type_traits> 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectstruct test 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project : private std::priority_queue<int> 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project test() 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project { 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project c.push_back(1); 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project assert(comp(1, 2)); 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project } 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectstruct C 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project typedef int value_type; 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project typedef int& reference; 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project typedef const int& const_reference; 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project typedef int size_type; 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectint main() 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<int>::container_type, std::vector<int> >::value), ""); 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<double, std::deque<int> >::container_type, std::deque<int> >::value), ""); 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<double, std::deque<int> >::value_type, int>::value), ""); 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<int>::reference, std::vector<int>::reference>::value), ""); 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<int>::const_reference, std::vector<int>::const_reference>::value), ""); 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::is_same<std::priority_queue<int>::size_type, std::vector<int>::size_type>::value), ""); 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((std::uses_allocator<std::priority_queue<int>, std::allocator<int> >::value), ""); 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project static_assert((!std::uses_allocator<std::priority_queue<int, C>, std::allocator<int> >::value), ""); 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project test t; 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project