[libcxx-commits] [PATCH] D124516: [libc++] Implement `std::expected` P0323R12

Hui via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Nov 25 13:08:58 PST 2022


huixie90 updated this revision to Diff 478016.
huixie90 added a comment.

next try


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124516/new/

https://reviews.llvm.org/D124516

Files:
  libcxx/docs/FeatureTestMacroTable.rst
  libcxx/docs/Status/Cxx2bIssues.csv
  libcxx/docs/Status/Cxx2bPapers.csv
  libcxx/include/CMakeLists.txt
  libcxx/include/__expected/bad_expected_access.h
  libcxx/include/__expected/expected.h
  libcxx/include/__expected/unexpect.h
  libcxx/include/__expected/unexpected.h
  libcxx/include/__type_traits/is_member_pointer.h
  libcxx/include/__type_traits/is_nothrow_constructible.h
  libcxx/include/__type_traits/is_scalar.h
  libcxx/include/__type_traits/is_void.h
  libcxx/include/expected
  libcxx/include/module.modulemap.in
  libcxx/include/version
  libcxx/test/libcxx/assertions/headers_declare_verbose_abort.sh.cpp
  libcxx/test/libcxx/clang_tidy.sh.cpp
  libcxx/test/libcxx/double_include.sh.cpp
  libcxx/test/libcxx/min_max_macros.compile.pass.cpp
  libcxx/test/libcxx/modules_include.sh.cpp
  libcxx/test/libcxx/nasty_macros.compile.pass.cpp
  libcxx/test/libcxx/no_assert_include.compile.pass.cpp
  libcxx/test/libcxx/private_headers.verify.cpp
  libcxx/test/libcxx/transitive_includes.sh.cpp
  libcxx/test/libcxx/transitive_includes/cxx03.csv
  libcxx/test/libcxx/transitive_includes/cxx11.csv
  libcxx/test/libcxx/transitive_includes/cxx14.csv
  libcxx/test/libcxx/transitive_includes/cxx17.csv
  libcxx/test/libcxx/transitive_includes/cxx20.csv
  libcxx/test/libcxx/transitive_includes/cxx2b.csv
  libcxx/test/libcxx/utilities/expected/expected.expected/assert.arrow.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.expected/assert.deref.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.expected/assert.error.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.expected/noexcept.extension.compile.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.expected/value_or.mandates.verify.cpp
  libcxx/test/libcxx/utilities/expected/expected.unexpected/noexcept.extension.compile.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.unexpected/swap.mandates.verify.cpp
  libcxx/test/libcxx/utilities/expected/expected.void/assert.deref.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.void/assert.error.pass.cpp
  libcxx/test/libcxx/utilities/expected/expected.void/noexcept.extension.compile.pass.cpp
  libcxx/test/libcxx/utilities/expected/types.h
  libcxx/test/libcxx/utilities/expected/version.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
  libcxx/test/std/utilities/expected/expected.bad/ctor.error.pass.cpp
  libcxx/test/std/utilities/expected/expected.bad/error.member.pass.cpp
  libcxx/test/std/utilities/expected/expected.bad/what.noexcept.compile.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/emplace.intializer_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/emplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.convert.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.convert.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.default.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.inplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.inplace_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.u.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.unexpect.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.unexpect_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/dtor.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/equality/equality.T2.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/equality/equality.unexpected.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/arrow.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/bool.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/deref.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/error.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/value.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/observers/value_or.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/swap/member.swap.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/assign/assign.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/assign/assign.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/class_mandates/array.compile.fail.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/class_mandates/const.compile.fail.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/class_mandates/non_object.compile.fail.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/class_mandates/unexpected.compile.fail.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/class_mandates/volatile.compile.fail.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctad.compile.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctor/ctor.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctor/ctor.error.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctor/ctor.inplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctor/ctor.inplace_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/ctor/ctor.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/equality.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/observer/error.const_ref.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/observer/error.const_ref_ref.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/observer/error.ref.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/observer/error.ref_ref.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/swap/swap.free.pass.cpp
  libcxx/test/std/utilities/expected/expected.unexpected/swap/swap.member.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/emplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.convert.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.convert.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.default.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.inplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.unexpect.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.unexpect_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/dtor.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/equality/equality.other_expected.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/equality/equality.unexpected.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/observers/bool.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/observers/deref.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/observers/error.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/observers/has_value.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/observers/value.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/swap/free.swap.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/swap/member.swap.pass.cpp
  libcxx/test/std/utilities/expected/types.h
  libcxx/utils/generate_feature_test_macro_components.py
  libcxx/utils/generate_header_inclusion_tests.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124516.478016.patch
Type: text/x-patch
Size: 427536 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20221125/2061940e/attachment-0001.bin>


More information about the libcxx-commits mailing list