[PATCH] D27850: [libcxx] add missing constexpr to optional::value_or
Eric Fiselier via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 27 11:42:48 PST 2016
EricWF accepted this revision.
EricWF added a comment.
This revision is now accepted and ready to land.
The changes to `<optional>` LGTM but not the ones to `<experimental/optional>`
Unfortunately libc++'s `<experimental/optional>` doesn't yet implement LFTS v2 so all of the other non-const observers are also not constexpr in our implementation. I think updating `<experimental/optional>` to LFTS v2 should be done as a separate patch. Please back out the changes to `<experimental/optional>` before committing.
Comment at: test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp:48
+ if (!(std::move(opt).value_or(y) == 2)) std::abort();
+ if (!(*opt == 0)) std::abort();
This test doesn't compile since the non-const version of `std::experimental::optional::operator*()` isn't constexpr.
More information about the cfe-commits