bit_and.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
14fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor//===----------------------------------------------------------------------===// 24fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// 34fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// ��������������������The LLVM Compiler Infrastructure 44fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// 54fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// This file is distributed under the University of Illinois Open Source 64fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// License. See LICENSE.TXT for details. 74fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// 84fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor//===----------------------------------------------------------------------===// 94fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor 10d538ed9b2a617239d5bd56357663de62f6f9224cAlexander Kornienko// <functional> 114fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor 124fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor// bit_and 134fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor 144fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#include <functional> 152fa67efeaf66a9332c30a026dc1c21bef6c33a6cBenjamin Kramer#include <type_traits> 164fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#include <cassert> 174fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor 184fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregorint main() 192fa67efeaf66a9332c30a026dc1c21bef6c33a6cBenjamin Kramer{ 204fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor typedef std::bit_and<int> F; 219db7dbb918ca49f4ee6c181e4917e7b6ec547353Douglas Gregor const F f = F(); 224fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); 2315de72cf580840c61e5704c2f8a2b56f9d0638e1Douglas Gregor assert(f(0xEA95, 0xEA95) == 0xEA95); 244fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor assert(f(0xEA95, 0x58D3) == 0x4891); 254fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor assert(f(0x58D3, 0xEA95) == 0x4891); 264fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor assert(f(0x58D3, 0) == 0); 274fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor assert(f(0xFFFF, 0x58D3) == 0x58D3); 28770b4a8834670e9427d3ce5a1a8472eb86f45fd2Benjamin Kramer} 295f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner