operator_==.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)//===----------------------------------------------------------------------===// 2a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 3a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// The LLVM Compiler Infrastructure 4a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 5a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 6a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)//===----------------------------------------------------------------------===// 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// <functional> 11a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// class function<R(ArgTypes...)> 13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// template <MoveConstructible R, MoveConstructible ... ArgTypes> 15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// bool operator==(const function<R(ArgTypes...)>&, nullptr_t); 16a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 17a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// template <MoveConstructible R, MoveConstructible ... ArgTypes> 18a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// bool operator==(nullptr_t, const function<R(ArgTypes...)>&); 19a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// template <MoveConstructible R, MoveConstructible ... ArgTypes> 21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// bool operator!=(const function<R(ArgTypes...)>&, nullptr_t); 22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// 23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// template <MoveConstructible R, MoveConstructible ... ArgTypes> 24a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// bool operator!=(nullptr_t, const function<R(ArgTypes...)>&); 25a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <functional> 27a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <cassert> 28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)int g(int) {return 0;} 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)int main() 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles){ 33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) { 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::function<int(int)> f; 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) assert(f == nullptr); 36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) assert(nullptr == f); 37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) f = g; 38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) assert(f != nullptr); 39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) assert(nullptr != f); 40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 41a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 42a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)