[libcxx-commits] [PATCH] D140911: [In Progress][libc++] Implement P2505R5(Monadic operations for std::expected)
Nikolas Klauser via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jan 8 07:28:11 PST 2023
philnik added inline comments.
================
Comment at: libcxx/include/__expected/expected.h:641
+ __expected::__is_expected<_Up>::value, "result of f(value()) must be a specialization of std::expected");
+ static_assert(is_same_v<typename _Up::error_type, _Err>,
+ "std::remove_cvref_t<decltype(f(value()))>>::error_type must same as error_type");
----------------
yronglin wrote:
> philnik wrote:
> > This `typename` shouldn't be required anymore. Is it to support older Clang versions?
> ```
> /Users/yrong/Developer/Toolchain/llvm/trunk/rel/include/c++/v1/__expected/expected.h:1267:29: error: template argument for template type parameter must be a type; did you forget 'typename'?
> static_assert(is_same_v<_Up::error_type, _Err>, "The result of f() must have the same error_type as this expected");
> ^
> typename
>
> ```
> I have encountered a compilation error, when execute `ninja check-cxx`, the failure test is `llvm-project/libcxx/test/libcxx/assertions/headers_declare_verbose_abort.sh.cpp`
Which clang version are you using?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140911/new/
https://reviews.llvm.org/D140911
More information about the libcxx-commits
mailing list