15a83710eSEric Fiselier //===----------------------------------------------------------------------===// 25a83710eSEric Fiselier // 35a83710eSEric Fiselier // The LLVM Compiler Infrastructure 45a83710eSEric Fiselier // 55a83710eSEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open 65a83710eSEric Fiselier // Source Licenses. See LICENSE.TXT for details. 75a83710eSEric Fiselier // 85a83710eSEric Fiselier //===----------------------------------------------------------------------===// 95a83710eSEric Fiselier 105a83710eSEric Fiselier // <functional> 11*bc933768SStephan T. Lavavej // REQUIRES: c++98 || c++03 || c++11 || c++14 12*bc933768SStephan T. Lavavej // binary_function was removed in C++17 135a83710eSEric Fiselier 145a83710eSEric Fiselier // binary_function 155a83710eSEric Fiselier 165a83710eSEric Fiselier #include <functional> 175a83710eSEric Fiselier #include <type_traits> 185a83710eSEric Fiselier 195a83710eSEric Fiselier int main() 205a83710eSEric Fiselier { 215a83710eSEric Fiselier typedef std::binary_function<int, short, bool> bf; 225a83710eSEric Fiselier static_assert((std::is_same<bf::first_argument_type, int>::value), ""); 235a83710eSEric Fiselier static_assert((std::is_same<bf::second_argument_type, short>::value), ""); 245a83710eSEric Fiselier static_assert((std::is_same<bf::result_type, bool>::value), ""); 255a83710eSEric Fiselier } 26