[libcxx-commits] [PATCH] D80482: [libcxx] Fix C++14 and up constexpr members in MoveOnly.
Zoe Carver via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sat May 23 14:51:22 PDT 2020
zoecarver created this revision.
zoecarver added a reviewer: ldionne.
Herald added subscribers: libcxx-commits, dexonsmith.
Herald added a project: libc++.
Herald added a reviewer: libc++.
a4b8ee6 <https://reviews.llvm.org/rGa4b8ee64223f2b942f55237e40e3bd01d9b16893> made all MoveOnly members constexpr but, some members and constructors contain expressions that are only valid in C++14 and later. This patch prefixes those methods and constructors with TEST_CONSTEXPR_CXX14.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D80482
Files:
libcxx/test/support/MoveOnly.h
Index: libcxx/test/support/MoveOnly.h
===================================================================
--- libcxx/test/support/MoveOnly.h
+++ libcxx/test/support/MoveOnly.h
@@ -24,17 +24,19 @@
int data_;
public:
constexpr MoveOnly(int data = 1) : data_(data) {}
- constexpr MoveOnly(MoveOnly&& x)
+ TEST_CONSTEXPR_CXX14 MoveOnly(MoveOnly&& x)
: data_(x.data_) {x.data_ = 0;}
- constexpr MoveOnly& operator=(MoveOnly&& x)
+ TEST_CONSTEXPR_CXX14 MoveOnly& operator=(MoveOnly&& x)
{data_ = x.data_; x.data_ = 0; return *this;}
constexpr int get() const {return data_;}
constexpr bool operator==(const MoveOnly& x) const {return data_ == x.data_;}
constexpr bool operator< (const MoveOnly& x) const {return data_ < x.data_;}
- constexpr MoveOnly operator+(const MoveOnly& x) const { return MoveOnly{data_ + x.data_}; }
- constexpr MoveOnly operator*(const MoveOnly& x) const { return MoveOnly{data_ * x.data_}; }
+ TEST_CONSTEXPR_CXX14 MoveOnly operator+(const MoveOnly& x) const
+ { return MoveOnly{data_ + x.data_}; }
+ TEST_CONSTEXPR_CXX14 MoveOnly operator*(const MoveOnly& x) const
+ { return MoveOnly{data_ * x.data_}; }
};
namespace std {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80482.265891.patch
Type: text/x-patch
Size: 1236 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20200523/955230cc/attachment-0001.bin>
More information about the libcxx-commits
mailing list