Author: marshall Date: Thu Feb 1 07:49:27 2018 New Revision: 323975 URL: http://llvm.org/viewvc/llvm-project?rev=323975&view=rev Log: Remove <experimental/numeric>; use <numeric> instead. See https://libcxx.llvm.org/TS_deprecation.html
Removed: libcxx/trunk/test/std/experimental/numeric/ Modified: libcxx/trunk/include/experimental/numeric libcxx/trunk/include/module.modulemap libcxx/trunk/test/libcxx/double_include.sh.cpp libcxx/trunk/test/libcxx/min_max_macros.sh.cpp Modified: libcxx/trunk/include/experimental/numeric URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/numeric?rev=323975&r1=323974&r2=323975&view=diff ============================================================================== --- libcxx/trunk/include/experimental/numeric (original) +++ libcxx/trunk/include/experimental/numeric Thu Feb 1 07:49:27 2018 @@ -8,112 +8,4 @@ // //===----------------------------------------------------------------------===// -#ifndef _LIBCPP_EXPERIMENTAL_NUMERIC -#define _LIBCPP_EXPERIMENTAL_NUMERIC -/* - experimental/numeric synopsis - -// C++1z -namespace std { -namespace experimental { -inline namespace fundamentals_v2 { - - // 13.1.2, Greatest common divisor - template<class M, class N> - constexpr common_type_t<M,N> gcd(M m, N n); - - // 13.1.3, Least common multiple - template<class M, class N> - constexpr common_type_t<M,N> lcm(M m, N n); - -} // namespace fundamentals_v2 -} // namespace experimental -} // namespace std - - */ - -#include <experimental/__config> -#include <numeric> -#include <type_traits> // is_integral -#include <limits> // numeric_limits - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_PUSH_MACROS -#include <__undef_macros> - -#if _LIBCPP_STD_VER > 11 - -_LIBCPP_BEGIN_NAMESPACE_LFTS_V2 - -template <typename _Result, typename _Source, bool _IsSigned = is_signed<_Source>::value> struct __abs; - -template <typename _Result, typename _Source> -struct __abs<_Result, _Source, true> { - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - _Result operator()(_Source __t) const noexcept - { - if (__t >= 0) return __t; - if (__t == numeric_limits<_Source>::min()) return -static_cast<_Result>(__t); - return -__t; - } -}; - -template <typename _Result, typename _Source> -struct __abs<_Result, _Source, false> { - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - _Result operator()(_Source __t) const noexcept { return __t; } -}; - - -template<class _Tp> -_LIBCPP_CONSTEXPR _LIBCPP_HIDDEN -inline _Tp __gcd(_Tp __m, _Tp __n) -{ - static_assert((!is_signed<_Tp>::value), "" ); - return __n == 0 ? __m : _VSTD_LFTS_V2::__gcd<_Tp>(__n, __m % __n); -} - - -template<class _Tp, class _Up> -_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY -common_type_t<_Tp,_Up> -gcd(_Tp __m, _Up __n) -{ - static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), "Arguments to gcd must be integer types"); - static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), "First argument to gcd cannot be bool" ); - static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), "Second argument to gcd cannot be bool" ); - using _Rp = common_type_t<_Tp,_Up>; - using _Wp = make_unsigned_t<_Rp>; - return static_cast<_Rp>(_VSTD_LFTS_V2::__gcd( - static_cast<_Wp>(__abs<_Rp, _Tp>()(__m)), - static_cast<_Wp>(__abs<_Rp, _Up>()(__n)))); -} - -template<class _Tp, class _Up> -_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY -common_type_t<_Tp,_Up> -lcm(_Tp __m, _Up __n) -{ - static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), "Arguments to lcm must be integer types"); - static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), "First argument to lcm cannot be bool" ); - static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), "Second argument to lcm cannot be bool" ); - if (__m == 0 || __n == 0) - return 0; - - using _Rp = common_type_t<_Tp,_Up>; - _Rp __val1 = __abs<_Rp, _Tp>()(__m) / _VSTD_LFTS_V2::gcd(__m, __n); - _Rp __val2 = __abs<_Rp, _Up>()(__n); - _LIBCPP_ASSERT((numeric_limits<_Rp>::max() / __val1 > __val2), "Overflow in lcm"); - return __val1 * __val2; -} - -_LIBCPP_END_NAMESPACE_LFTS_V2 - -#endif /* _LIBCPP_STD_VER > 11 */ - -_LIBCPP_POP_MACROS - -#endif /* _LIBCPP_EXPERIMENTAL_NUMERIC */ +#error "<experimental/numeric> has been removed. Use <numeric> instead." Modified: libcxx/trunk/include/module.modulemap URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/module.modulemap?rev=323975&r1=323974&r2=323975&view=diff ============================================================================== --- libcxx/trunk/include/module.modulemap (original) +++ libcxx/trunk/include/module.modulemap Thu Feb 1 07:49:27 2018 @@ -538,10 +538,6 @@ module std [system] { header "experimental/memory_resource" export * } - module numeric { - header "experimental/numeric" - export * - } module propagate_const { header "experimental/propagate_const" export * Modified: libcxx/trunk/test/libcxx/double_include.sh.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/double_include.sh.cpp?rev=323975&r1=323974&r2=323975&view=diff ============================================================================== --- libcxx/trunk/test/libcxx/double_include.sh.cpp (original) +++ libcxx/trunk/test/libcxx/double_include.sh.cpp Thu Feb 1 07:49:27 2018 @@ -148,7 +148,6 @@ #include <experimental/list> #include <experimental/map> #include <experimental/memory_resource> -#include <experimental/numeric> #include <experimental/propagate_const> #include <experimental/ratio> #include <experimental/regex> Modified: libcxx/trunk/test/libcxx/min_max_macros.sh.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/min_max_macros.sh.cpp?rev=323975&r1=323974&r2=323975&view=diff ============================================================================== --- libcxx/trunk/test/libcxx/min_max_macros.sh.cpp (original) +++ libcxx/trunk/test/libcxx/min_max_macros.sh.cpp Thu Feb 1 07:49:27 2018 @@ -257,8 +257,6 @@ TEST_MACROS(); TEST_MACROS(); #include <experimental/memory_resource> TEST_MACROS(); -#include <experimental/numeric> -TEST_MACROS(); #include <experimental/propagate_const> TEST_MACROS(); #include <experimental/ratio> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits