comparison.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// <utility> 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// template <class T1, class T2> struct pair 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// template <class T1, class T2> bool operator==(const pair<T1,T2>&, const pair<T1,T2>&); 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// template <class T1, class T2> bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&); 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// template <class T1, class T2> bool operator< (const pair<T1,T2>&, const pair<T1,T2>&); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class T1, class T2> bool operator> (const pair<T1,T2>&, const pair<T1,T2>&); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class T1, class T2> bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// template <class T1, class T2> bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <utility> 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include <cassert> 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)int main() 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles){ 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) { 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) typedef std::pair<int, short> P; 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) P p1(3, 4); 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) P p2(3, 4); 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) assert( (p1 == p2)); 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) assert(!(p1 != p2)); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(!(p1 < p2)); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 <= p2)); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 > p2)); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 >= p2)); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef std::pair<int, short> P; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P p1(2, 4); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P p2(3, 4); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 == p2)); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 != p2)); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 < p2)); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 <= p2)); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 > p2)); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 >= p2)); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef std::pair<int, short> P; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P p1(3, 2); 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P p2(3, 4); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 == p2)); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 != p2)); 540529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert( (p1 < p2)); 550529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert( (p1 <= p2)); 560529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(!(p1 > p2)); 570529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(!(p1 >= p2)); 580529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 590529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch { 600529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch typedef std::pair<int, short> P; 610529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch P p1(3, 4); 620529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch P p2(2, 4); 630529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(!(p1 == p2)); 640529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert( (p1 != p2)); 650529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(!(p1 < p2)); 660529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert(!(p1 <= p2)); 670529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert( (p1 > p2)); 680529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch assert( (p1 >= p2)); 690529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 700529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch { 710529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch typedef std::pair<int, short> P; 720529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch P p1(3, 4); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P p2(3, 2); 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 == p2)); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 != p2)); 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 < p2)); 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(!(p1 <= p2)); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 > p2)); 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert( (p1 >= p2)); 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)