Use std::optional for BaseLibrary TryGet.
continuous-integration/drone/push Build is passing

Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
Deukhoofd committed 2020-12-12 12:42:28 +01:00
1 parent 5c39694f19
commit 185ec40ba5
4 files changed
+28 -17

No files matched your search

+16 -6
View File
@@ -17,16 +17,26 @@
\
export bool simpleName##_TryGet(fullname* p, const char* name, const returnType*& out) { \
ArbUt::BorrowedPtr<const returnType> o; \
auto v = p->TryGet(ArbUt::StringView::CalculateHash(name), o); \
out = o.GetRaw(); \
return v; \
auto v = p->TryGet(ArbUt::StringView::CalculateHash(name)); \
if (v.has_value()) { \
out = nullptr; \
return false; \
} else { \
out = v.value(); \
return true; \
} \
} \
\
export bool simpleName##_TryGetWithHash(fullname* p, uint32_t hashedKey, const returnType*& out) { \
ArbUt::BorrowedPtr<const returnType> o; \
auto v = p->TryGet(hashedKey, o); \
out = o.GetRaw(); \
return v; \
auto v = p->TryGet(hashedKey); \
if (v.has_value()) { \
out = nullptr; \
return false; \
} else { \
out = v.value(); \
return true; \
} \
} \
\
export uint8_t simpleName##_Get(fullname* p, const char* name, const returnType*& out) { \