cmp_nullptr.pass.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //===----------------------------------------------------------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. // <memory>
  9. // shared_ptr
  10. // template <class T, class D>
  11. // bool operator==(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  12. // template <class T, class D>
  13. // bool operator==(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  14. // template <class T, class D>
  15. // bool operator!=(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  16. // template <class T, class D>
  17. // bool operator!=(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  18. // template <class T, class D>
  19. // bool operator<(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  20. // template <class T, class D>
  21. // bool operator<(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  22. // template <class T, class D>
  23. // bool operator<=(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  24. // template <class T, class D>
  25. // bool operator<=(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  26. // template <class T, class D>
  27. // bool operator>(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  28. // template <class T, class D>
  29. // bool operator>(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  30. // template <class T, class D>
  31. // bool operator>=(const unique_ptr<T, D>& x, nullptr_t) noexcept;
  32. // template <class T, class D>
  33. // bool operator>=(nullptr_t, const unique_ptr<T, D>& y) noexcept;
  34. #include <memory>
  35. #include <cassert>
  36. #include "test_macros.h"
  37. void do_nothing(int*) {}
  38. int main(int, char**)
  39. {
  40. const std::unique_ptr<int> p1(new int(1));
  41. assert(!(p1 == nullptr));
  42. assert(!(nullptr == p1));
  43. assert(!(p1 < nullptr));
  44. assert( (nullptr < p1));
  45. assert(!(p1 <= nullptr));
  46. assert( (nullptr <= p1));
  47. assert( (p1 > nullptr));
  48. assert(!(nullptr > p1));
  49. assert( (p1 >= nullptr));
  50. assert(!(nullptr >= p1));
  51. const std::unique_ptr<int> p2;
  52. assert( (p2 == nullptr));
  53. assert( (nullptr == p2));
  54. assert(!(p2 < nullptr));
  55. assert(!(nullptr < p2));
  56. assert( (p2 <= nullptr));
  57. assert( (nullptr <= p2));
  58. assert(!(p2 > nullptr));
  59. assert(!(nullptr > p2));
  60. assert( (p2 >= nullptr));
  61. assert( (nullptr >= p2));
  62. return 0;
  63. }