| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ | 5 #ifndef BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ |
| 6 #define BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ | 6 #define BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ |
| 7 | 7 |
| 8 #include <limits.h> | |
| 9 #include <stdint.h> | 8 #include <stdint.h> |
| 10 | 9 |
| 11 #include <climits> | |
| 12 #include <limits> | 10 #include <limits> |
| 13 #include <type_traits> | 11 #include <type_traits> |
| 14 | 12 |
| 15 namespace base { | 13 namespace base { |
| 16 namespace internal { | 14 namespace internal { |
| 17 | 15 |
| 18 // The std library doesn't provide a binary max_exponent for integers, however | 16 // The std library doesn't provide a binary max_exponent for integers, however |
| 19 // we can compute an analog using std::numeric_limits<>::digits. | 17 // we can compute an analog using std::numeric_limits<>::digits. |
| 20 template <typename NumericType> | 18 template <typename NumericType> |
| 21 struct MaxExponent { | 19 struct MaxExponent { |
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 static_cast<BigType>(static_cast<L>(lhs)), | 607 static_cast<BigType>(static_cast<L>(lhs)), |
| 610 static_cast<BigType>(static_cast<R>(rhs))) | 608 static_cast<BigType>(static_cast<R>(rhs))) |
| 611 // Let the template functions figure it out for mixed types. | 609 // Let the template functions figure it out for mixed types. |
| 612 : C<L, R>::Test(lhs, rhs); | 610 : C<L, R>::Test(lhs, rhs); |
| 613 }; | 611 }; |
| 614 | 612 |
| 615 } // namespace internal | 613 } // namespace internal |
| 616 } // namespace base | 614 } // namespace base |
| 617 | 615 |
| 618 #endif // BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ | 616 #endif // BASE_NUMERICS_SAFE_CONVERSIONS_IMPL_H_ |
| OLD | NEW |