From b1ade08b2da4a0b398b69ea4eb2de35b08941826 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 7 Jan 2018 19:56:25 -0800 Subject: base: Hide the BitUnion::__StorageType type. Since this type is now accessible through a clean interface, hide it from anybody that tries to peak around the curtain. Change-Id: I1257b6675a45b8648be459ad8e8d0f27a6feee6b Reviewed-on: https://gem5-review.googlesource.com/7205 Reviewed-by: Gabe Black Maintainer: Gabe Black --- src/base/bitunion.hh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/base/bitunion.hh b/src/base/bitunion.hh index 10fa00508..6e7d223d2 100644 --- a/src/base/bitunion.hh +++ b/src/base/bitunion.hh @@ -291,8 +291,14 @@ namespace BitfieldBackend class BitfieldUnderlyingClasses##name : \ public BitfieldBackend::BitfieldTypes \ { \ - public: \ + protected: \ typedef type __StorageType; \ + friend BitfieldBackend::BitUnionBaseType< \ + BitfieldBackend::BitUnionOperators< \ + BitfieldUnderlyingClasses##name> >; \ + friend BitfieldBackend::BitUnionBaseType< \ + BitfieldUnderlyingClasses##name>; \ + public: \ union { \ type __storage; @@ -388,6 +394,8 @@ namespace BitfieldBackend template using BitUnionBaseType = typename BitfieldBackend::BitUnionBaseType::Type; + +//An STL style hash structure for hashing BitUnions based on their base type. namespace std { template -- cgit v1.2.3