[*] Fix: typo in optional

This commit is contained in:
Reece Wilson 2024-08-03 20:58:48 +01:00
parent d0dd1f9015
commit 76bf394f73

View File

@ -213,10 +213,10 @@ namespace tl {
template <class F, class... Us> template <class F, class... Us>
struct invoke_result_impl< struct invoke_result_impl<
F, decltype(detail::invoke(AuDecalVal<F>(), AuDecalVal<Us>()...), void()), F, decltype(detail::invoke(AuDeclVal<F>(), AuDeclVal<Us>()...), void()),
Us...> Us...>
{ {
using type = decltype(detail::invoke(AuDecalVal<F>(), AuDecalVal<Us>()...)); using type = decltype(detail::invoke(AuDeclVal<F>(), AuDeclVal<Us>()...));
}; };
template <class F, class... Us> template <class F, class... Us>
@ -247,13 +247,13 @@ namespace tl {
// becomes std::swap // becomes std::swap
template <class, class> AuFalseType can_swap(...) noexcept(false); template <class, class> AuFalseType can_swap(...) noexcept(false);
template <class T, class U, template <class T, class U,
class = decltype(swap(AuDecalVal<T &>(), AuDecalVal<U &>()))> class = decltype(swap(AuDeclVal<T &>(), AuDeclVal<U &>()))>
AuTrueType can_swap(int) noexcept(noexcept(swap(AuDecalVal<T &>(), AuTrueType can_swap(int) noexcept(noexcept(swap(AuDeclVal<T &>(),
AuDecalVal<U &>()))); AuDeclVal<U &>())));
template <class, class> AuFalseType uses_std(...); template <class, class> AuFalseType uses_std(...);
template <class T, class U> template <class T, class U>
AuIsSame<decltype(swap(AuDecalVal<T &>(), AuDecalVal<U &>())), tag> AuIsSame<decltype(swap(AuDeclVal<T &>(), AuDeclVal<U &>())), tag>
uses_std(int); uses_std(int);
template <class T> template <class T>
@ -975,8 +975,7 @@ namespace tl {
#endif #endif
#endif #endif
#if defined(TL_OPTIONAL_CXX14) && !defined(TL_OPTIONAL_GCC49) && \ #if defined(TL_OPTIONAL_CXX14) && !defined(TL_OPTIONAL_GCC49) && !defined(TL_OPTIONAL_GCC54) && !defined(TL_OPTIONAL_GCC55) && !defined(AURORA_COMPILER_MSVC)
!defined(TL_OPTIONAL_GCC54) && !defined(TL_OPTIONAL_GCC55)
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) & template <class F> TL_OPTIONAL_11_CONSTEXPR auto map(F &&f) &
{ {
@ -1020,24 +1019,24 @@ namespace tl {
#else #else
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) & map(F &&f) &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
} }
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) && map(F &&f) &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) const & map(F &&f) const &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
@ -1045,8 +1044,8 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) const && map(F &&f) const &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
@ -1054,24 +1053,24 @@ namespace tl {
#endif #endif
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Map(F &&f) & Map(F &&f) &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
} }
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Map(F &&f) && Map(F &&f) &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Map(F &&f) const & Map(F &&f) const &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
@ -1079,8 +1078,8 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Map(F &&f) const && Map(F &&f) const &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
@ -1132,24 +1131,24 @@ namespace tl {
#else #else
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) & transform(F &&f) &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
} }
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) && transform(F &&f) &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) const & transform(F &&f) const &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
@ -1157,32 +1156,32 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) const && transform(F &&f) const &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
#endif #endif
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) & Transform(F &&f) &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
} }
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) && Transform(F &&f) &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) const & Transform(F &&f) const &
{ {
return optional_map_impl(*this, AuForward<F>(f)); return optional_map_impl(*this, AuForward<F>(f));
@ -1190,8 +1189,8 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) const && Transform(F &&f) const &&
{ {
return optional_map_impl(AuMove(*this), AuForward<F>(f)); return optional_map_impl(AuMove(*this), AuForward<F>(f));
@ -2225,8 +2224,8 @@ namespace tl {
namespace detail { namespace detail {
#ifdef TL_OPTIONAL_CXX14 #ifdef TL_OPTIONAL_CXX14
template <class Opt, class F, template <class Opt, class F,
class Ret = decltype(detail::invoke(AuDecalVal<F>(), class Ret = decltype(detail::invoke(AuDeclVal<F>(),
*AuDecalVal<Opt>())), *AuDeclVal<Opt>())),
detail::enable_if_t<!AuIsVoid<Ret>::value> * = nullptr> detail::enable_if_t<!AuIsVoid<Ret>::value> * = nullptr>
constexpr auto optional_map_impl(Opt &&opt, F &&f) constexpr auto optional_map_impl(Opt &&opt, F &&f)
{ {
@ -2236,8 +2235,8 @@ namespace tl {
} }
template <class Opt, class F, template <class Opt, class F,
class Ret = decltype(detail::invoke(AuDecalVal<F>(), class Ret = decltype(detail::invoke(AuDeclVal<F>(),
*AuDecalVal<Opt>())), *AuDeclVal<Opt>())),
detail::enable_if_t<AuIsVoid<Ret>::value> * = nullptr> detail::enable_if_t<AuIsVoid<Ret>::value> * = nullptr>
auto optional_map_impl(Opt &&opt, F &&f) auto optional_map_impl(Opt &&opt, F &&f)
{ {
@ -2251,8 +2250,8 @@ namespace tl {
} }
#else #else
template <class Opt, class F, template <class Opt, class F,
class Ret = decltype(detail::invoke(AuDecalVal<F>(), class Ret = decltype(detail::invoke(AuDeclVal<F>(),
*AuDecalVal<Opt>())), *AuDeclVal<Opt>())),
detail::enable_if_t<!AuIsVoid<Ret>::value> * = nullptr> detail::enable_if_t<!AuIsVoid<Ret>::value> * = nullptr>
constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret> constexpr auto optional_map_impl(Opt &&opt, F &&f) -> optional<Ret>
@ -2263,8 +2262,8 @@ namespace tl {
} }
template <class Opt, class F, template <class Opt, class F,
class Ret = decltype(detail::invoke(AuDecalVal<F>(), class Ret = decltype(detail::invoke(AuDeclVal<F>(),
*AuDecalVal<Opt>())), *AuDeclVal<Opt>())),
detail::enable_if_t<AuIsVoid<Ret>::value> * = nullptr> detail::enable_if_t<AuIsVoid<Ret>::value> * = nullptr>
auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate> auto optional_map_impl(Opt &&opt, F &&f) -> optional<monostate>
@ -2410,24 +2409,24 @@ namespace tl {
#else #else
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) & map(F &&f) &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
} }
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) && map(F &&f) &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) const & map(F &&f) const &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
@ -2435,8 +2434,8 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
map(F &&f) const && map(F &&f) const &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));
@ -2489,8 +2488,8 @@ namespace tl {
#else #else
/// Carries out some operation on the stored object if there is one. /// Carries out some operation on the stored object if there is one.
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) & transform(F &&f) &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
@ -2499,16 +2498,16 @@ namespace tl {
/// \group map /// \group map
/// \synopsis template <class F> auto transform(F &&f) &&; /// \synopsis template <class F> auto transform(F &&f) &&;
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) && transform(F &&f) &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) const & transform(F &&f) const &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
@ -2516,16 +2515,16 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
transform(F &&f) const && transform(F &&f) const &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
#endif #endif
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) & Transform(F &&f) &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
@ -2534,16 +2533,16 @@ namespace tl {
/// \group map /// \group map
/// \synopsis template <class F> auto Transform(F &&f) &&; /// \synopsis template <class F> auto Transform(F &&f) &&;
template <class F> template <class F>
TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDecalVal<optional &&>(), TL_OPTIONAL_11_CONSTEXPR decltype(detail::optional_map_impl(AuDeclVal<optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) && Transform(F &&f) &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));
} }
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) const & Transform(F &&f) const &
{ {
return detail::optional_map_impl(*this, AuForward<F>(f)); return detail::optional_map_impl(*this, AuForward<F>(f));
@ -2551,8 +2550,8 @@ namespace tl {
#ifndef TL_OPTIONAL_NO_CONSTRR #ifndef TL_OPTIONAL_NO_CONSTRR
template <class F> template <class F>
constexpr decltype(detail::optional_map_impl(AuDecalVal<const optional &&>(), constexpr decltype(detail::optional_map_impl(AuDeclVal<const optional &&>(),
AuDecalVal<F &&>())) AuDeclVal<F &&>()))
Transform(F &&f) const && Transform(F &&f) const &&
{ {
return detail::optional_map_impl(AuMove(*this), AuForward<F>(f)); return detail::optional_map_impl(AuMove(*this), AuForward<F>(f));