42 lines
1.6 KiB
Diff
42 lines
1.6 KiB
Diff
From c23f09d436b566934d02c26a19e3cf5d31545855 Mon Sep 17 00:00:00 2001
|
|
From: Stephan Hartmann <stha09@googlemail.com>
|
|
Date: Sat, 4 Sep 2021 17:02:00 +0000
|
|
Subject: [PATCH] GCC: fix template specialization in webrtc::BitstreamReader
|
|
|
|
GCC complains that explicit specialization in non-namespace scope
|
|
is happening for webrtc::BitstreamReader::Read(). However, specialization
|
|
for bool isn't used because std::is_unsigned<bool>::value returns true.
|
|
Add std::is_same for bool check and enable second specialization only
|
|
for bool types.
|
|
|
|
---
|
|
third_party/webrtc/rtc_base/bitstream_reader.h | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/third_party/webrtc/rtc_base/bitstream_reader.h b/third_party/webrtc/rtc_base/bitstream_reader.h
|
|
index 8c0f66f..cd8537f 100644
|
|
--- a/third_party/webrtc/rtc_base/bitstream_reader.h
|
|
+++ b/third_party/webrtc/rtc_base/bitstream_reader.h
|
|
@@ -61,14 +61,16 @@ class BitstreamReader {
|
|
// Reads unsigned integer of fixed width.
|
|
template <typename T,
|
|
typename std::enable_if<std::is_unsigned<T>::value &&
|
|
+ !std::is_same<T, bool>::value &&
|
|
sizeof(T) <= 8>::type* = nullptr>
|
|
ABSL_MUST_USE_RESULT T Read() {
|
|
return rtc::dchecked_cast<T>(ReadBits(sizeof(T) * 8));
|
|
}
|
|
|
|
// Reads single bit as boolean.
|
|
- template <>
|
|
- ABSL_MUST_USE_RESULT bool Read<bool>() {
|
|
+ template <typename T,
|
|
+ typename std::enable_if<std::is_same<T, bool>::value>::type* = nullptr>
|
|
+ ABSL_MUST_USE_RESULT bool Read() {
|
|
return ReadBit() != 0;
|
|
}
|
|
|
|
--
|
|
2.32.0
|
|
|