Fix support of C++ references in UMA macros
This CL fixes compilation errors caused when passing const-refs or non-const-refs as value arguments for the UMA macros. Before this CL, an attempt to pass a const-ref as a value resulted in errors like this: base/metrics/histogram_macros_internal.h:30:5: error: static_assert failed due to requirement 'sizeof(const TestEnum &) == 0' "enumerator must define kMaxValue enumerat or to use this macro!" static_assert( ^ base/metrics/histogram_macros_unittest.cc:63:3: note: in instantiation of member function 'base::internal::EnumSizeTraits<const TestEnum &, void>::Count' requested here UMA_HISTOGRAM_ENUMERATION("Test.ScopedEnumeration3", value_ref); ^ base/metrics/histogram_macros.h:84:7: note: expanded from macro 'UMA_HISTOGRAM_ENUMERATION' INTERNAL_UMA_HISTOGRAM_ENUMERATION_DEDUCE_BOUNDARY) \ ^ In file included from ../../base/metrics/histogram_macros_unittest.cc:5: In file included from ../../base/metrics/histogram_macros.h:10: base/metrics/histogram_macros_internal.h:33:12: error: reference to type 'const TestEnum' requires an initializer return Enum(); Bug: none Change-Id: I875ff783bda12cc30079bcf6188ff843b9b55a0c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1729593Reviewed-by:Jesse Doherty <jwd@chromium.org> Commit-Queue: Maksim Ivanov <emaxx@chromium.org> Cr-Commit-Position: refs/heads/master@{#682898}
Showing
Please register or sign in to comment