re PR libstdc++/60710 (experimental::optional<T> is using T::operator!=)

2014-04-25  Lars Gullik Bjønnes  <larsbj@gullik.org>

	PR libstdc++/60710
	* include/experimental/optional (operator!=): Implement in terms of
	operator==.
	* testsuite/experimental/optional/relops/1.cc: Remove operator!=.
	* testsuite/experimental/optional/relops/2.cc: Likewise.
	* testsuite/experimental/optional/relops/3.cc: Likewise.
	* testsuite/experimental/optional/relops/4.cc: Likewise.
	* testsuite/experimental/optional/relops/5.cc: Likewise.
	* testsuite/experimental/optional/relops/6.cc: Likewise.

From-SVN: r209810
This commit is contained in:
Lars Gullik Bjønnes 2014-04-25 19:34:42 +00:00 committed by Jonathan Wakely
parent 10432733a5
commit e2ce9436fb
8 changed files with 14 additions and 26 deletions

View File

@ -1,3 +1,15 @@
2014-04-25 Lars Gullik Bjønnes <larsbj@gullik.org>
PR libstdc++/60710
* include/experimental/optional (operator!=): Implement in terms of
operator==.
* testsuite/experimental/optional/relops/1.cc: Remove operator!=.
* testsuite/experimental/optional/relops/2.cc: Likewise.
* testsuite/experimental/optional/relops/3.cc: Likewise.
* testsuite/experimental/optional/relops/4.cc: Likewise.
* testsuite/experimental/optional/relops/5.cc: Likewise.
* testsuite/experimental/optional/relops/6.cc: Likewise.
2014-04-25 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/60958

View File

@ -736,12 +736,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp>
constexpr bool
operator!=(const optional<_Tp>& __lhs, _Tp const& __rhs)
{ return !__lhs || *__lhs != __rhs; }
{ return !__lhs || !(*__lhs == __rhs); }
template<typename _Tp>
constexpr bool
operator!=(const _Tp& __lhs, const optional<_Tp>& __rhs)
{ return !__rhs || __lhs != *__rhs; }
{ return !__rhs || !(__lhs == *__rhs); }
template<typename _Tp>
constexpr bool

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }

View File

@ -36,10 +36,6 @@ namespace ns
operator==(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) == std::tie(rhs.i, rhs.s); }
bool
operator!=(value_type const& lhs, value_type const& rhs)
{ return !(lhs == rhs); }
bool
operator<(value_type const& lhs, value_type const& rhs)
{ return std::tie(lhs.i, lhs.s) < std::tie(rhs.i, rhs.s); }