chore: enable C++23 and prefer std::expected (#6693)
This commit is contained in:
@@ -74,6 +74,8 @@
|
|||||||
- Dev: Added Clazy linting in CI. (#6623)
|
- Dev: Added Clazy linting in CI. (#6623)
|
||||||
- Dev: Added custom clang-tidy module linting in CI. (#6626)
|
- Dev: Added custom clang-tidy module linting in CI. (#6626)
|
||||||
- Dev: CMake option `USE_ALTERNATE_LINKER` now errors if the given linker can't be found. (#6692)
|
- Dev: CMake option `USE_ALTERNATE_LINKER` now errors if the given linker can't be found. (#6692)
|
||||||
|
- Dev: Enable C++ 23. (#6693)
|
||||||
|
- Dev: Prefer `std::expected` over `nonstd::expected_lite`. (#6693)
|
||||||
- Dev: Moved Twitch PubSub to liveupdates. (#6638)
|
- Dev: Moved Twitch PubSub to liveupdates. (#6638)
|
||||||
|
|
||||||
## 2.5.4
|
## 2.5.4
|
||||||
|
|||||||
+1
-1
@@ -270,7 +270,7 @@ else ()
|
|||||||
string(TIMESTAMP cmake_gen_date "%Y-%m-%d")
|
string(TIMESTAMP cmake_gen_date "%Y-%m-%d")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
# Generate resource files
|
# Generate resource files
|
||||||
|
|||||||
+22
-4
@@ -1,6 +1,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <nonstd/expected.hpp>
|
#include <version>
|
||||||
|
|
||||||
|
#if __cpp_lib_expected >= 202202L
|
||||||
|
# include <expected>
|
||||||
|
#else
|
||||||
|
# include <nonstd/expected.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
@@ -8,17 +14,29 @@ class QString;
|
|||||||
|
|
||||||
namespace chatterino {
|
namespace chatterino {
|
||||||
|
|
||||||
|
#if __cpp_lib_expected >= 202202L
|
||||||
|
template <typename T, typename E>
|
||||||
|
using Expected = std::expected<T, E>;
|
||||||
|
|
||||||
|
// convenience function from nonstd/expected.hpp
|
||||||
|
template <typename E>
|
||||||
|
constexpr std::unexpected<std::decay_t<E>> makeUnexpected(E &&value)
|
||||||
|
{
|
||||||
|
return std::unexpected<std::decay_t<E>>(std::forward<E>(value));
|
||||||
|
}
|
||||||
|
#else
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
using Expected = nonstd::expected_lite::expected<T, E>;
|
using Expected = nonstd::expected_lite::expected<T, E>;
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
using ExpectedStr = Expected<T, QString>;
|
|
||||||
|
|
||||||
// convenience function from nonstd/expected.hpp
|
// convenience function from nonstd/expected.hpp
|
||||||
template <typename E>
|
template <typename E>
|
||||||
constexpr nonstd::unexpected<std::decay_t<E>> makeUnexpected(E &&value)
|
constexpr nonstd::unexpected<std::decay_t<E>> makeUnexpected(E &&value)
|
||||||
{
|
{
|
||||||
return nonstd::unexpected<std::decay_t<E>>(std::forward<E>(value));
|
return nonstd::unexpected<std::decay_t<E>>(std::forward<E>(value));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
using ExpectedStr = Expected<T, QString>;
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|||||||
Reference in New Issue
Block a user