mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-24 12:02:36 +08:00
Summary: In r342843, I added deprecation warnings to some facilities that were deprectated in C++14 and C++17. However, those deprecation warnings were not enabled by default. After discussing this on IRC, we had finally gotten consensus to enable those warnings by default, and I'm getting around to doing that only now. Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, jdoerfert, libcxx-commits Differential Revision: https://reviews.llvm.org/D58140 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355961 91177308-0d34-0410-b5e6-96231b3b80d8
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// <functional>
|
|
// REQUIRES: c++98 || c++03 || c++11 || c++14
|
|
|
|
// template <class Fn>
|
|
// class binder2nd
|
|
// : public unary_function<typename Fn::first_argument_type, typename Fn::result_type>
|
|
// {
|
|
// protected:
|
|
// Fn op;
|
|
// typename Fn::second_argument_type value;
|
|
// public:
|
|
// binder2nd(const Fn& x, const typename Fn::second_argument_type& y);
|
|
//
|
|
// typename Fn::result_type operator()(const typename Fn::first_argument_type& x) const;
|
|
// typename Fn::result_type operator()(typename Fn::first_argument_type& x) const;
|
|
// };
|
|
|
|
#define _LIBCPP_DISABLE_DEPRECATION_WARNINGS
|
|
|
|
#include <functional>
|
|
#include <type_traits>
|
|
#include <cassert>
|
|
|
|
#include "../test_func.h"
|
|
|
|
class test
|
|
: public std::binder2nd<test_func>
|
|
{
|
|
typedef std::binder2nd<test_func> base;
|
|
public:
|
|
test() : std::binder2nd<test_func>(test_func(3), 4.5) {}
|
|
|
|
void do_test()
|
|
{
|
|
static_assert((std::is_base_of<
|
|
std::unary_function<test_func::first_argument_type,
|
|
test_func::result_type>,
|
|
test>::value), "");
|
|
assert(op.id() == 3);
|
|
assert(value == 4.5);
|
|
|
|
int i = 5;
|
|
assert((*this)(i) == 22.5);
|
|
assert((*this)(5) == 0.5);
|
|
}
|
|
};
|
|
|
|
int main(int, char**)
|
|
{
|
|
test t;
|
|
t.do_test();
|
|
|
|
return 0;
|
|
}
|