Skip to content
This repository was archived by the owner on Jun 3, 2018. It is now read-only.
This repository was archived by the owner on Jun 3, 2018. It is now read-only.

Update expected-lite to proposal p0323r6 (was 5) #20

@martinmoene

Description

@martinmoene

Update expected-lite to proposal p0323r5 p0323r6.
Provide (some) backward compatibility through CMake variable EXPECTED_P0323R.

See also issues:

Plan:

  1. unexpected[_type]<E>:
  • constructors
  • destructor (not specified)
  • assignment
  • swap
  • observers
  • relational operators: deprecate less-than comparable (provide for EXPECTED_P0323R<= 2)
  • remove default template parameter std::exception_ptr (provide for EXPECTED_P0323R<= 2)
  • remove unexpected[_type]<std::exception_ptr> specialisation (provide for EXPECTED_P0323R<= 2)
  • alias unexpected_type&ltE> to unexpected<E> for C++17, however
    not for MSVC <= 14.1 due to clash with unexpected()
  1. unexpect tag:
  • struct unexpect_t
  • object unexpect (now inline for C++17)
  • in_place_unexpected_t kept as alias of unexpect_t
  • object in_place_unexpected kept (now inline for C++17)
  1. bad_expected_access:
  • bad_expected_access<T>
  • bad_expected_access<void>
  1. expected<T,E>:
  • constructors
  • destructor
  • assignment
  • swap
  • observers
  • relational operators: deprecate less-than comparable (provide for EXPECTED_P0323R<= 2)
  • comparison with T: deprecate less-than comparable (provide for EXPECTED_P0323R<= 2)
  • comparison with unexpected[_type]<E>: deprecate less-than comparable (provide for EXPECTED_P0323R<= 2)
  • specialised algorithms
  • remove default template parameter std::exception_ptr (provide for EXPECTED_P0323R<= 2)
  1. Traits:
  • is_unexpected<> (not in propsal; provide for EXPECTED_P0323R <= 3)
  • error_traits<E> (not in propsal; provide for EXPECTED_P0323R <= 3)
  • expected_traits<T,E> (not present in expected-lite; removed from proposal in r4)
  1. Factory functions
  • make_expected, deprecate, not useful with two template argument to specify
  • make_unexpected, keep
  1. Test specification
  • Test for all values of nsel_P0323R
  • Identify missing tests
  • Add missing tests
  1. Update documentation
  • Readme

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions