diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2013-07-29 14:21:53 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2013-07-29 14:21:53 +0000 |
commit | 83c08b4497cf93faffb34f41263adf09d9305102 (patch) | |
tree | 6828130ada15e4280f967777baea6e4a279c6e83 /libcxx/test/utilities/function.objects/arithmetic.operations | |
parent | 7fdaee8f1520458a96fa47e58ef64ce164e16b8e (diff) | |
download | bcm5719-llvm-83c08b4497cf93faffb34f41263adf09d9305102.tar.gz bcm5719-llvm-83c08b4497cf93faffb34f41263adf09d9305102.zip |
Implement N3421; comparison predicates<void>
llvm-svn: 187357
Diffstat (limited to 'libcxx/test/utilities/function.objects/arithmetic.operations')
6 files changed, 42 insertions, 0 deletions
diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/divides.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/divides.pass.cpp index 13e5b68a30a..5eeba18b657 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/divides.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/divides.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); assert(f(36, 4) == 9); +#if _LIBCPP_STD_VER > 11 + typedef std::divides<> F2; + const F2 f2 = F2(); + assert(f2(36, 4) == 9); + assert(f2(36.0, 4) == 9); + assert(f2(18, 4.0) == 4.5); // exact in binary +#endif } diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/minus.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/minus.pass.cpp index f777b2397ea..2a8ecd6b876 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/minus.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/minus.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); assert(f(3, 2) == 1); +#if _LIBCPP_STD_VER > 11 + typedef std::minus<> F2; + const F2 f2 = F2(); + assert(f2(3,2) == 1); + assert(f2(3.0, 2) == 1); + assert(f2(3, 2.5) == 0.5); +#endif } diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/modulus.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/modulus.pass.cpp index 542711fb2ee..421f9452d62 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/modulus.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/modulus.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); assert(f(36, 8) == 4); +#if _LIBCPP_STD_VER > 11 + typedef std::modulus<> F2; + const F2 f2 = F2(); + assert(f2(36, 8) == 4); + assert(f2(36L, 8) == 4); + assert(f2(36, 8L) == 4); +#endif } diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/multiplies.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/multiplies.pass.cpp index c96938f8c5e..67bb5a5e3d0 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/multiplies.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/multiplies.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); assert(f(3, 2) == 6); +#if _LIBCPP_STD_VER > 11 + typedef std::multiplies<> F2; + const F2 f2 = F2(); + assert(f2(3,2) == 6); + assert(f2(3.0, 2) == 6); + assert(f2(3, 2.5) == 7.5); // exact in binary +#endif } diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/negate.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/negate.pass.cpp index 6c6957ab1e7..181c1fb7aa8 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/negate.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/negate.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::unary_function<int, int>, F>::value), ""); assert(f(36) == -36); +#if _LIBCPP_STD_VER > 11 + typedef std::negate<> F2; + const F2 f2 = F2(); + assert(f2(36) == -36); + assert(f2(36L) == -36); + assert(f2(36.0) == -36); +#endif } diff --git a/libcxx/test/utilities/function.objects/arithmetic.operations/plus.pass.cpp b/libcxx/test/utilities/function.objects/arithmetic.operations/plus.pass.cpp index bc72195d91a..4de23fff086 100644 --- a/libcxx/test/utilities/function.objects/arithmetic.operations/plus.pass.cpp +++ b/libcxx/test/utilities/function.objects/arithmetic.operations/plus.pass.cpp @@ -21,4 +21,11 @@ int main() const F f = F(); static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), ""); assert(f(3, 2) == 5); +#if _LIBCPP_STD_VER > 11 + typedef std::plus<> F2; + const F2 f2 = F2(); + assert(f2(3,2) == 5); + assert(f2(3.0, 2) == 5); + assert(f2(3, 2.5) == 5.5); +#endif } |