diff options
author | John Ankarström <john@ankarstrom.se> | 2022-08-02 23:31:21 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-08-02 23:31:21 +0200 |
commit | edce20642b6d177ee9877775cbfa9e05ebb4e404 (patch) | |
tree | f37c2d7121b3de0491561a5bd33ecf004d3a67d2 /c/common.h | |
parent | ad4a1e4ac6b9452bb28936623035d01bb03f36f2 (diff) | |
download | EpisodeBrowser-edce20642b6d177ee9877775cbfa9e05ebb4e404.tar.gz |
Replace maybe_make.
It seems unnecessary to throw exceptions when simply checking whether
a library exists.
Diffstat (limited to 'c/common.h')
-rw-r--r-- | c/common.h | 21 |
1 files changed, 2 insertions, 19 deletions
@@ -5,12 +5,6 @@ #include <optional> #include <windows.h> -#ifdef UNICODE -#define WA "W" -#else -#define WA "A" -#endif - int EBMessageBox(const wchar_t* wszText, const wchar_t* wszCaption, unsigned uType); int GetRelativeCursorPos(HWND hWnd, POINT* pt); @@ -46,10 +40,12 @@ private: struct Library { + static std::optional<Library> Maybe(const wchar_t* lib); Library(const wchar_t* lib); ~Library(); template <class T> T* GetProcAddress(const char* szProc); private: + Library(HMODULE hModule); HMODULE m_hModule; }; @@ -65,19 +61,6 @@ inline int wszf(wchar_t (&buf)[N], const wchar_t* const fmt, T... xs) return _snwprintf_s(buf, N, _TRUNCATE, fmt, xs...); } -/* Create and return an object of type C. If construction fails, - * return nothing. The returned value must be checked before being - * used, as dereferencing is undefined if the value is empty. */ -template <typename T, typename... U> -std::optional<T> maybe_make(U... xs) -{ - try { - return T(xs...); - } catch (...) { - return {}; - } -} - /* Variable template for caching values from GetSystemMetrics. */ template <int I> auto Metric = GetSystemMetrics(I); |