diff options
author | Howard Hinnant <hhinnant@apple.com> | 2010-05-11 19:42:16 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2010-05-11 19:42:16 +0000 |
commit | 3e519524c118651123eecf60c2bbc5d65ad9bac3 (patch) | |
tree | b2dd4168cfe448920a602cd7d2e40f95da187153 /libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp | |
parent | 9132c59d43b6c590c9bb33496eebf9f192d6857a (diff) | |
download | bcm5719-llvm-3e519524c118651123eecf60c2bbc5d65ad9bac3.tar.gz bcm5719-llvm-3e519524c118651123eecf60c2bbc5d65ad9bac3.zip |
libcxx initial import
llvm-svn: 103490
Diffstat (limited to 'libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp')
-rw-r--r-- | libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp new file mode 100644 index 00000000000..6012d23cf6e --- /dev/null +++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp @@ -0,0 +1,53 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// test numeric_limits + +// digits10 + +#include <limits> +#include <cfloat> + +template <class T, int expected> +void +test() +{ + static_assert(std::numeric_limits<T>::digits10 == expected, "digits10 test 1"); + static_assert(std::numeric_limits<T>::is_bounded, "digits10 test 5"); + static_assert(std::numeric_limits<const T>::digits10 == expected, "digits10 test 2"); + static_assert(std::numeric_limits<const T>::is_bounded, "digits10 test 6"); + static_assert(std::numeric_limits<volatile T>::digits10 == expected, "digits10 test 3"); + static_assert(std::numeric_limits<volatile T>::is_bounded, "digits10 test 7"); + static_assert(std::numeric_limits<const volatile T>::digits10 == expected, "digits10 test 4"); + static_assert(std::numeric_limits<const volatile T>::is_bounded, "digits10 test 8"); +} + +int main() +{ + test<bool, 0>(); + test<char, 2>(); + test<signed char, 2>(); + test<unsigned char, 2>(); + test<wchar_t, 9>(); +#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS + test<char16_t, 4>(); + test<char32_t, 9>(); +#endif + test<short, 4>(); + test<unsigned short, 4>(); + test<int, 9>(); + test<unsigned int, 9>(); + test<long, sizeof(long) == 4 ? 9 : 18>(); + test<unsigned long, sizeof(long) == 4 ? 9 : 19>(); + test<long long, 18>(); + test<unsigned long long, 19>(); + test<float, FLT_DIG>(); + test<double, DBL_DIG>(); + test<long double, LDBL_DIG>(); +} |