diff options
Diffstat (limited to 'libcxx/test/utilities/function.objects/bind/func.bind')
8 files changed, 0 insertions, 767 deletions
diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp deleted file mode 100644 index ab4dd59534d5..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// template<CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); -// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); - -#include <functional> -#include <cassert> - -template <class R, class F> -void -test(F f, R expected) -{ - assert(f() == expected); -} - -template <class R, class F> -void -test_const(const F& f, R expected) -{ - assert(f() == expected); -} - -int f() {return 1;} - -struct A_int_0 -{ - int operator()() {return 4;} - int operator()() const {return 5;} -}; - -int main() -{ - test(std::bind(f), 1); - test(std::bind(&f), 1); - test(std::bind(A_int_0()), 4); - test_const(std::bind(A_int_0()), 5); - - test(std::bind<int>(f), 1); - test(std::bind<int>(&f), 1); - test(std::bind<int>(A_int_0()), 4); - test_const(std::bind<int>(A_int_0()), 5); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp deleted file mode 100644 index 6b18fa295bca..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp +++ /dev/null @@ -1,268 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// template<CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); -// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); - -#include <stdio.h> - -#include <functional> -#include <cassert> - -int count = 0; - -// 1 arg, return void - -void f_void_1(int i) -{ - count += i; -} - -struct A_void_1 -{ - void operator()(int i) - { - count += i; - } - - void mem1() {++count;} - void mem2() const {count += 2;} -}; - -void -test_void_1() -{ - using namespace std::placeholders; - int save_count = count; - // function - { - int i = 2; - std::bind(f_void_1, _1)(i); - assert(count == save_count + 2); - save_count = count; - } - { - int i = 2; - std::bind(f_void_1, i)(); - assert(count == save_count + 2); - save_count = count; - } - // function pointer - { - void (*fp)(int) = f_void_1; - int i = 3; - std::bind(fp, _1)(i); - assert(count == save_count+3); - save_count = count; - } - { - void (*fp)(int) = f_void_1; - int i = 3; - std::bind(fp, i)(); - assert(count == save_count+3); - save_count = count; - } - // functor - { - A_void_1 a0; - int i = 4; - std::bind(a0, _1)(i); - assert(count == save_count+4); - save_count = count; - } - { - A_void_1 a0; - int i = 4; - std::bind(a0, i)(); - assert(count == save_count+4); - save_count = count; - } - // member function pointer - { - void (A_void_1::*fp)() = &A_void_1::mem1; - A_void_1 a; - std::bind(fp, _1)(a); - assert(count == save_count+1); - save_count = count; - A_void_1* ap = &a; - std::bind(fp, _1)(ap); - assert(count == save_count+1); - save_count = count; - } - { - void (A_void_1::*fp)() = &A_void_1::mem1; - A_void_1 a; - std::bind(fp, a)(); - assert(count == save_count+1); - save_count = count; - A_void_1* ap = &a; - std::bind(fp, ap)(); - assert(count == save_count+1); - save_count = count; - } - // const member function pointer - { - void (A_void_1::*fp)() const = &A_void_1::mem2; - A_void_1 a; - std::bind(fp, _1)(a); - assert(count == save_count+2); - save_count = count; - A_void_1* ap = &a; - std::bind(fp, _1)(ap); - assert(count == save_count+2); - save_count = count; - } - { - void (A_void_1::*fp)() const = &A_void_1::mem2; - A_void_1 a; - std::bind(fp, a)(); - assert(count == save_count+2); - save_count = count; - A_void_1* ap = &a; - std::bind(fp, ap)(); - assert(count == save_count+2); - save_count = count; - } -} - -// 1 arg, return int - -int f_int_1(int i) -{ - return i + 1; -} - -struct A_int_1 -{ - A_int_1() : data_(5) {} - int operator()(int i) - { - return i - 1; - } - - int mem1() {return 3;} - int mem2() const {return 4;} - int data_; -}; - -void -test_int_1() -{ - using namespace std::placeholders; - // function - { - int i = 2; - assert(std::bind(f_int_1, _1)(i) == 3); - assert(std::bind(f_int_1, i)() == 3); - } - // function pointer - { - int (*fp)(int) = f_int_1; - int i = 3; - assert(std::bind(fp, _1)(i) == 4); - assert(std::bind(fp, i)() == 4); - } - // functor - { - int i = 4; - assert(std::bind(A_int_1(), _1)(i) == 3); - assert(std::bind(A_int_1(), i)() == 3); - } - // member function pointer - { - A_int_1 a; - assert(std::bind(&A_int_1::mem1, _1)(a) == 3); - assert(std::bind(&A_int_1::mem1, a)() == 3); - A_int_1* ap = &a; - assert(std::bind(&A_int_1::mem1, _1)(ap) == 3); - assert(std::bind(&A_int_1::mem1, ap)() == 3); - } - // const member function pointer - { - A_int_1 a; - assert(std::bind(&A_int_1::mem2, _1)(A_int_1()) == 4); - assert(std::bind(&A_int_1::mem2, A_int_1())() == 4); - A_int_1* ap = &a; - assert(std::bind(&A_int_1::mem2, _1)(ap) == 4); - assert(std::bind(&A_int_1::mem2, ap)() == 4); - } - // member data pointer - { - A_int_1 a; - assert(std::bind(&A_int_1::data_, _1)(a) == 5); - assert(std::bind(&A_int_1::data_, a)() == 5); - A_int_1* ap = &a; - assert(std::bind(&A_int_1::data_, _1)(a) == 5); - std::bind(&A_int_1::data_, _1)(a) = 6; - assert(std::bind(&A_int_1::data_, _1)(a) == 6); - assert(std::bind(&A_int_1::data_, _1)(ap) == 6); - std::bind(&A_int_1::data_, _1)(ap) = 7; - assert(std::bind(&A_int_1::data_, _1)(ap) == 7); - } -} - -// 2 arg, return void - -void f_void_2(int i, int j) -{ - count += i+j; -} - -struct A_void_2 -{ - void operator()(int i, int j) - { - count += i+j; - } - - void mem1(int i) {count += i;} - void mem2(int i) const {count += i;} -}; - -void -test_void_2() -{ - using namespace std::placeholders; - int save_count = count; - // function - { - int i = 2; - int j = 3; - std::bind(f_void_2, _1, _2)(i, j); - assert(count == save_count+5); - save_count = count; - std::bind(f_void_2, i, _1)(j); - assert(count == save_count+5); - save_count = count; - std::bind(f_void_2, i, j)(); - assert(count == save_count+5); - save_count = count; - } - // member function pointer - { - int j = 3; - std::bind(&A_void_2::mem1, _1, _2)(A_void_2(), j); - assert(count == save_count+3); - save_count = count; - std::bind(&A_void_2::mem1, _2, _1)(j, A_void_2()); - assert(count == save_count+3); - save_count = count; - } -} - -int main() -{ - test_void_1(); - test_int_1(); - test_void_2(); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp deleted file mode 100644 index 4913a510c36e..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp +++ /dev/null @@ -1,266 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// template<CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); -// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); - -#include <stdio.h> - -#include <functional> -#include <cassert> - -int count = 0; - -// 1 arg, return void - -void f_void_1(int i) -{ - count += i; -} - -struct A_void_1 -{ - void operator()(int i) - { - count += i; - } - - void mem1() {++count;} - void mem2() const {count += 2;} -}; - -void -test_void_1() -{ - using namespace std::placeholders; - int save_count = count; - // function - { - std::bind(f_void_1, _1)(2); - assert(count == save_count + 2); - save_count = count; - } - { - std::bind(f_void_1, 2)(); - assert(count == save_count + 2); - save_count = count; - } - // function pointer - { - void (*fp)(int) = f_void_1; - std::bind(fp, _1)(3); - assert(count == save_count+3); - save_count = count; - } - { - void (*fp)(int) = f_void_1; - std::bind(fp, 3)(); - assert(count == save_count+3); - save_count = count; - } - // functor - { - A_void_1 a0; - std::bind(a0, _1)(4); - assert(count == save_count+4); - save_count = count; - } - { - A_void_1 a0; - std::bind(a0, 4)(); - assert(count == save_count+4); - save_count = count; - } - // member function pointer - { - void (A_void_1::*fp)() = &A_void_1::mem1; - std::bind(fp, _1)(A_void_1()); - assert(count == save_count+1); - save_count = count; - A_void_1 a; - std::bind(fp, _1)(&a); - assert(count == save_count+1); - save_count = count; - } - { - void (A_void_1::*fp)() = &A_void_1::mem1; - std::bind(fp, A_void_1())(); - assert(count == save_count+1); - save_count = count; - A_void_1 a; - std::bind(fp, &a)(); - assert(count == save_count+1); - save_count = count; - } - // const member function pointer - { - void (A_void_1::*fp)() const = &A_void_1::mem2; - std::bind(fp, _1)(A_void_1()); - assert(count == save_count+2); - save_count = count; - A_void_1 a; - std::bind(fp, _1)(&a); - assert(count == save_count+2); - save_count = count; - } - { - void (A_void_1::*fp)() const = &A_void_1::mem2; - std::bind(fp, A_void_1())(); - assert(count == save_count+2); - save_count = count; - A_void_1 a; - std::bind(fp, &a)(); - assert(count == save_count+2); - save_count = count; - } -} - -// 1 arg, return int - -int f_int_1(int i) -{ - return i + 1; -} - -struct A_int_1 -{ - A_int_1() : data_(5) {} - int operator()(int i) - { - return i - 1; - } - - int mem1() {return 3;} - int mem2() const {return 4;} - int data_; -}; - -void -test_int_1() -{ - using namespace std::placeholders; - // function - { - assert(std::bind(f_int_1, _1)(2) == 3); - assert(std::bind(f_int_1, 2)() == 3); - } - // function pointer - { - int (*fp)(int) = f_int_1; - assert(std::bind(fp, _1)(3) == 4); - assert(std::bind(fp, 3)() == 4); - } - // functor - { - assert(std::bind(A_int_1(), _1)(4) == 3); - assert(std::bind(A_int_1(), 4)() == 3); - } - // member function pointer - { - assert(std::bind(&A_int_1::mem1, _1)(A_int_1()) == 3); - assert(std::bind(&A_int_1::mem1, A_int_1())() == 3); - A_int_1 a; - assert(std::bind(&A_int_1::mem1, _1)(&a) == 3); - assert(std::bind(&A_int_1::mem1, &a)() == 3); - } - // const member function pointer - { - assert(std::bind(&A_int_1::mem2, _1)(A_int_1()) == 4); - assert(std::bind(&A_int_1::mem2, A_int_1())() == 4); - A_int_1 a; - assert(std::bind(&A_int_1::mem2, _1)(&a) == 4); - assert(std::bind(&A_int_1::mem2, &a)() == 4); - } - // member data pointer - { - assert(std::bind(&A_int_1::data_, _1)(A_int_1()) == 5); - assert(std::bind(&A_int_1::data_, A_int_1())() == 5); - A_int_1 a; - assert(std::bind(&A_int_1::data_, _1)(a) == 5); - std::bind(&A_int_1::data_, _1)(a) = 6; - assert(std::bind(&A_int_1::data_, _1)(a) == 6); - assert(std::bind(&A_int_1::data_, _1)(&a) == 6); - std::bind(&A_int_1::data_, _1)(&a) = 7; - assert(std::bind(&A_int_1::data_, _1)(&a) == 7); - } -} - -// 2 arg, return void - -void f_void_2(int i, int j) -{ - count += i+j; -} - -struct A_void_2 -{ - void operator()(int i, int j) - { - count += i+j; - } - - void mem1(int i) {count += i;} - void mem2(int i) const {count += i;} -}; - -void -test_void_2() -{ - using namespace std::placeholders; - int save_count = count; - // function - { - std::bind(f_void_2, _1, _2)(2, 3); - assert(count == save_count+5); - save_count = count; - std::bind(f_void_2, 2, _1)(3); - assert(count == save_count+5); - save_count = count; - std::bind(f_void_2, 2, 3)(); - assert(count == save_count+5); - save_count = count; - } - // member function pointer - { - std::bind(&A_void_2::mem1, _1, _2)(A_void_2(), 3); - assert(count == save_count+3); - save_count = count; - std::bind(&A_void_2::mem1, _2, _1)(3, A_void_2()); - assert(count == save_count+3); - save_count = count; - } -} - -int f_nested(int i) -{ - return i+1; -} - -int g_nested(int i) -{ - return i*10; -} - -void test_nested() -{ - using namespace std::placeholders; - assert(std::bind(f_nested, std::bind(g_nested, _1))(3) == 31); -} - -int main() -{ - test_void_1(); - test_int_1(); - test_void_2(); - test_nested(); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.pass.cpp deleted file mode 100644 index 03447db33dec..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.pass.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// template<CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); -// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types> -// unspecified bind(Fn, Types...); - -#include <functional> -#include <cassert> - -int count = 0; - -template <class F> -void -test(F f) -{ - int save_count = count; - f(); - assert(count == save_count + 1); -} - -template <class F> -void -test_const(const F& f) -{ - int save_count = count; - f(); - assert(count == save_count + 2); -} - -void f() {++count;} - -struct A_int_0 -{ - void operator()() {++count;} - void operator()() const {count += 2;} -}; - -int main() -{ - test(std::bind(f)); - test(std::bind(&f)); - test(std::bind(A_int_0())); - test_const(std::bind(A_int_0())); - - test(std::bind<void>(f)); - test(std::bind<void>(&f)); - test(std::bind<void>(A_int_0())); - test_const(std::bind<void>(A_int_0())); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp deleted file mode 100644 index 7f8dd4a98d2b..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp +++ /dev/null @@ -1,32 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// template<class T> struct is_bind_expression - -#include <functional> - -template <bool Expected, class T> -void -test(const T&) -{ - static_assert(std::is_bind_expression<T>::value == Expected, ""); -} - -struct C {}; - -int main() -{ - test<true>(std::bind(C())); - test<true>(std::bind(C(), std::placeholders::_2)); - test<true>(std::bind<int>(C())); - test<false>(1); - test<false>(std::placeholders::_2); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp deleted file mode 100644 index 6a52bd1848e9..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp +++ /dev/null @@ -1,41 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// struct is_placeholder - -#include <functional> - -template <int Expected, class T> -void -test(const T&) -{ - static_assert(std::is_placeholder<T>::value == Expected, ""); -} - -struct C {}; - -int main() -{ - test<1>(std::placeholders::_1); - test<2>(std::placeholders::_2); - test<3>(std::placeholders::_3); - test<4>(std::placeholders::_4); - test<5>(std::placeholders::_5); - test<6>(std::placeholders::_6); - test<7>(std::placeholders::_7); - test<8>(std::placeholders::_8); - test<9>(std::placeholders::_9); - test<10>(std::placeholders::_10); - test<0>(4); - test<0>(5.5); - test<0>('a'); - test<0>(C()); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.place/placeholders.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.place/placeholders.pass.cpp deleted file mode 100644 index fa791d46ff50..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.place/placeholders.pass.cpp +++ /dev/null @@ -1,36 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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> - -// placeholders - -#include <functional> - -template <class T> -void -test(const T& t) -{ - T t2; - T t3 = t; -} - -int main() -{ - test(std::placeholders::_1); - test(std::placeholders::_2); - test(std::placeholders::_3); - test(std::placeholders::_4); - test(std::placeholders::_5); - test(std::placeholders::_6); - test(std::placeholders::_7); - test(std::placeholders::_8); - test(std::placeholders::_9); - test(std::placeholders::_10); -} diff --git a/libcxx/test/utilities/function.objects/bind/func.bind/nothing_to_do.pass.cpp b/libcxx/test/utilities/function.objects/bind/func.bind/nothing_to_do.pass.cpp deleted file mode 100644 index b58f5c55b643..000000000000 --- a/libcxx/test/utilities/function.objects/bind/func.bind/nothing_to_do.pass.cpp +++ /dev/null @@ -1,12 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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. -// -//===----------------------------------------------------------------------===// - -int main() -{ -} |
