From 61b9a7258a7693d7f3674a5a1daf7b036ff1d382 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 6 Sep 2015 18:46:46 +0000 Subject: Import libc++ 3.7.0 release (r246257). --- .../func.bind.isbind/is_bind_expression.pass.cpp | 32 +++++++++++++++++ .../func.bind.isbind/is_placeholder.pass.cpp | 41 ++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp create mode 100644 test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp (limited to 'test/std/utilities/function.objects/bind/func.bind/func.bind.isbind') diff --git a/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp b/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp new file mode 100644 index 000000000000..7f8dd4a98d2b --- /dev/null +++ b/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp @@ -0,0 +1,32 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +// + +// template struct is_bind_expression + +#include + +template +void +test(const T&) +{ + static_assert(std::is_bind_expression::value == Expected, ""); +} + +struct C {}; + +int main() +{ + test(std::bind(C())); + test(std::bind(C(), std::placeholders::_2)); + test(std::bind(C())); + test(1); + test(std::placeholders::_2); +} diff --git a/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp b/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp new file mode 100644 index 000000000000..6a52bd1848e9 --- /dev/null +++ b/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp @@ -0,0 +1,41 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +// + +// struct is_placeholder + +#include + +template +void +test(const T&) +{ + static_assert(std::is_placeholder::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()); +} -- cgit v1.3