Skip to content

Commit 588123b

Browse files
kazutakahirataaokblast
authored andcommitted
[Basic] clean up MapEntryOptionalStorage and its derived classes (NFC) (llvm#164189)
This patch modernizes a couple of things: - Use in-class member initializers in MapEntryOptionalStorage. - Inherit constructors in OptionalStorage<clang::DirectoryEntryRef> and OptionalStorage<clang::FileEntryRef>.
1 parent fd76761 commit 588123b

File tree

2 files changed

+4
-12
lines changed

2 files changed

+4
-12
lines changed

clang/include/clang/Basic/DirectoryEntry.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ namespace FileMgr {
119119
/// the private optional_none_tag to keep it to the size of a single pointer.
120120
template <class RefTy> class MapEntryOptionalStorage {
121121
using optional_none_tag = typename RefTy::optional_none_tag;
122-
RefTy MaybeRef;
122+
RefTy MaybeRef = optional_none_tag();
123123

124124
public:
125-
MapEntryOptionalStorage() : MaybeRef(optional_none_tag()) {}
125+
MapEntryOptionalStorage() = default;
126126

127127
template <class... ArgTypes>
128128
explicit MapEntryOptionalStorage(std::in_place_t, ArgTypes &&...Args)
@@ -168,11 +168,7 @@ class OptionalStorage<clang::DirectoryEntryRef>
168168
clang::FileMgr::MapEntryOptionalStorage<clang::DirectoryEntryRef>;
169169

170170
public:
171-
OptionalStorage() = default;
172-
173-
template <class... ArgTypes>
174-
explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
175-
: StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
171+
using StorageImpl::StorageImpl;
176172

177173
OptionalStorage &operator=(clang::DirectoryEntryRef Ref) {
178174
StorageImpl::operator=(Ref);

clang/include/clang/Basic/FileEntry.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,7 @@ class OptionalStorage<clang::FileEntryRef>
218218
clang::FileMgr::MapEntryOptionalStorage<clang::FileEntryRef>;
219219

220220
public:
221-
OptionalStorage() = default;
222-
223-
template <class... ArgTypes>
224-
explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
225-
: StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
221+
using StorageImpl::StorageImpl;
226222

227223
OptionalStorage &operator=(clang::FileEntryRef Ref) {
228224
StorageImpl::operator=(Ref);

0 commit comments

Comments
 (0)