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