| //===----------------------------------------------------------------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is dual licensed under the MIT and the University of Illinois Open |
| // Source Licenses. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // <functional> |
| |
| // class function<R(ArgTypes...)> |
| |
| // template <MoveConstructible R, MoveConstructible ... ArgTypes> |
| // bool operator==(const function<R(ArgTypes...)>&, nullptr_t); |
| // |
| // template <MoveConstructible R, MoveConstructible ... ArgTypes> |
| // bool operator==(nullptr_t, const function<R(ArgTypes...)>&); |
| // |
| // template <MoveConstructible R, MoveConstructible ... ArgTypes> |
| // bool operator!=(const function<R(ArgTypes...)>&, nullptr_t); |
| // |
| // template <MoveConstructible R, MoveConstructible ... ArgTypes> |
| // bool operator!=(nullptr_t, const function<R(ArgTypes...)>&); |
| |
| #include <functional> |
| #include <cassert> |
| |
| int g(int) {return 0;} |
| |
| int main() |
| { |
| { |
| std::function<int(int)> f; |
| assert(f == nullptr); |
| assert(nullptr == f); |
| f = g; |
| assert(f != nullptr); |
| assert(nullptr != f); |
| } |
| } |