| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_LOGGING_H_ | 5 #ifndef BASE_LOGGING_H_ | 
| 6 #define BASE_LOGGING_H_ | 6 #define BASE_LOGGING_H_ | 
| 7 | 7 | 
| 8 #include <stddef.h> | 8 #include <stddef.h> | 
| 9 | 9 | 
| 10 #include <cassert> | 10 #include <cassert> | 
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 520    ;                                                                           \ | 520    ;                                                                           \ | 
| 521   else                                                                         \ | 521   else                                                                         \ | 
| 522     ::logging::LogMessage(__FILE__, __LINE__, true_if_passed.message()).stream() | 522     ::logging::LogMessage(__FILE__, __LINE__, true_if_passed.message()).stream() | 
| 523 | 523 | 
| 524 #endif  // !(OFFICIAL_BUILD && NDEBUG) | 524 #endif  // !(OFFICIAL_BUILD && NDEBUG) | 
| 525 | 525 | 
| 526 // This formats a value for a failing CHECK_XX statement.  Ordinarily, | 526 // This formats a value for a failing CHECK_XX statement.  Ordinarily, | 
| 527 // it uses the definition for operator<<, with a few special cases below. | 527 // it uses the definition for operator<<, with a few special cases below. | 
| 528 template <typename T> | 528 template <typename T> | 
| 529 inline typename std::enable_if< | 529 inline typename std::enable_if< | 
| 530     base::internal::SupportsOstreamOperator<const T&>::value, | 530     base::internal::SupportsOstreamOperator<const T&>::value && | 
|  | 531         !std::is_function<typename std::remove_pointer<T>::type>::value, | 
| 531     void>::type | 532     void>::type | 
| 532 MakeCheckOpValueString(std::ostream* os, const T& v) { | 533 MakeCheckOpValueString(std::ostream* os, const T& v) { | 
| 533   (*os) << v; | 534   (*os) << v; | 
| 534 } | 535 } | 
| 535 | 536 | 
|  | 537 // Provide an overload for functions and function pointers. Function pointers | 
|  | 538 // don't implicitly convert to void* but do implicitly convert to bool, so | 
|  | 539 // without this function pointers are always printed as 1 or 0. (MSVC isn't | 
|  | 540 // standards-conforming here and converts function pointers to regular | 
|  | 541 // pointers, so this is a no-op for MSVC.) | 
|  | 542 template <typename T> | 
|  | 543 inline typename std::enable_if< | 
|  | 544     std::is_function<typename std::remove_pointer<T>::type>::value, | 
|  | 545     void>::type | 
|  | 546 MakeCheckOpValueString(std::ostream* os, const T& v) { | 
|  | 547   (*os) << reinterpret_cast<const void*>(v); | 
|  | 548 } | 
|  | 549 | 
| 536 // We need overloads for enums that don't support operator<<. | 550 // We need overloads for enums that don't support operator<<. | 
| 537 // (i.e. scoped enums where no operator<< overload was declared). | 551 // (i.e. scoped enums where no operator<< overload was declared). | 
| 538 template <typename T> | 552 template <typename T> | 
| 539 inline typename std::enable_if< | 553 inline typename std::enable_if< | 
| 540     !base::internal::SupportsOstreamOperator<const T&>::value && | 554     !base::internal::SupportsOstreamOperator<const T&>::value && | 
| 541         std::is_enum<T>::value, | 555         std::is_enum<T>::value, | 
| 542     void>::type | 556     void>::type | 
| 543 MakeCheckOpValueString(std::ostream* os, const T& v) { | 557 MakeCheckOpValueString(std::ostream* os, const T& v) { | 
| 544   (*os) << static_cast<typename base::underlying_type<T>::type>(v); | 558   (*os) << static_cast<typename base::underlying_type<T>::type>(v); | 
| 545 } | 559 } | 
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 988 #elif NOTIMPLEMENTED_POLICY == 5 | 1002 #elif NOTIMPLEMENTED_POLICY == 5 | 
| 989 #define NOTIMPLEMENTED() do {\ | 1003 #define NOTIMPLEMENTED() do {\ | 
| 990   static bool logged_once = false;\ | 1004   static bool logged_once = false;\ | 
| 991   LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG;\ | 1005   LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG;\ | 
| 992   logged_once = true;\ | 1006   logged_once = true;\ | 
| 993 } while(0);\ | 1007 } while(0);\ | 
| 994 EAT_STREAM_PARAMETERS | 1008 EAT_STREAM_PARAMETERS | 
| 995 #endif | 1009 #endif | 
| 996 | 1010 | 
| 997 #endif  // BASE_LOGGING_H_ | 1011 #endif  // BASE_LOGGING_H_ | 
| OLD | NEW | 
|---|