//===----------------------------------------------------------------------===// // // 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. // //===----------------------------------------------------------------------===// // Adaptation to Boost of the libcxx // Copyright 2010 Vicente J. Botet Escriba // Distributed under the Boost Software License, Version 1.0. // See http://www.boost.org/LICENSE_1_0.txt #include #include #include "../rep.h" #if defined BOOST_NO_CXX11_NUMERIC_LIMITS || defined BOOST_NO_CXX11_CONSTEXPR #define BOOST_CONSTEXPR_ASSERT(C) BOOST_TEST(C) #else #include #define BOOST_CONSTEXPR_ASSERT(C) BOOST_STATIC_ASSERT(C) #endif template void check_max() { typedef typename D::rep Rep; Rep max_rep = (boost::chrono::duration_values::max)(); BOOST_TEST((D::max)().count() == max_rep); { typedef typename D::rep Rep; BOOST_CHRONO_LIB_CONSTEXPR Rep max_rep = (boost::chrono::duration_values::max)(); BOOST_CONSTEXPR_ASSERT((D::max)().count() == max_rep); } } template void check_min() { typedef typename D::rep Rep; Rep min_rep = (boost::chrono::duration_values::min)(); BOOST_TEST((D::min)().count() == min_rep); { typedef typename D::rep Rep; BOOST_CHRONO_LIB_CONSTEXPR Rep min_rep = (boost::chrono::duration_values::min)(); BOOST_CONSTEXPR_ASSERT((D::min)().count() == min_rep); } } template void check_zero() { typedef typename D::rep Rep; Rep zero_rep = boost::chrono::duration_values::zero(); BOOST_TEST(D::zero().count() == zero_rep); { typedef typename D::rep Rep; BOOST_CONSTEXPR Rep zero_rep = boost::chrono::duration_values::zero(); BOOST_CONSTEXPR_ASSERT(D::zero().count() == zero_rep); } } int main() { check_max >(); check_max >(); check_min >(); check_min >(); check_zero >(); check_zero >(); return boost::report_errors(); }