folly: avoid compile warning/failure due to lvalue-to-rvalue conversion
authorPádraig Brady <pbrady@fb.com>
Fri, 10 Nov 2017 03:26:16 +0000 (19:26 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Fri, 10 Nov 2017 03:41:35 +0000 (19:41 -0800)
Summary:
With gcc 7.2 we get the warning:
  folly/io/async/DelayedDestructionBase.h:252:20:
  error: parameter ‘right’ set but not used [-Werror=unused-but-set-parameter]
     std::nullptr_t right) {
                    ^~~~~
I presume this is due to the implicit conversion, hence the named parameter is
never assigned.  Instead we use an explicit nullptr.

Reviewed By: yfeldblum

Differential Revision: D6279302

fbshipit-source-id: ed449601b0410c178777f20e82ed09d9097bd024

folly/io/async/DelayedDestructionBase.h

index 5edd64bddbe57a8720efd6230f6fbadfaea0cbc4..9375baa0ce266388a8827f19c357b95c3b0e2bdd 100644 (file)
@@ -247,25 +247,25 @@ inline bool operator !=(
     const DelayedDestructionBase::DestructorGuard& right) {
   return left.get() != right.get();
 }
-inline bool operator ==(
+inline bool operator==(
     const DelayedDestructionBase::DestructorGuard& left,
-    std::nullptr_t right) {
-  return left.get() == right;
+    std::nullptr_t) {
+  return left.get() == nullptr;
 }
-inline bool operator ==(
-    std::nullptr_t left,
+inline bool operator==(
+    std::nullptr_t,
     const DelayedDestructionBase::DestructorGuard& right) {
-  return left == right.get();
+  return nullptr == right.get();
 }
-inline bool operator !=(
+inline bool operator!=(
     const DelayedDestructionBase::DestructorGuard& left,
-    std::nullptr_t right) {
-  return left.get() != right;
+    std::nullptr_t) {
+  return left.get() != nullptr;
 }
-inline bool operator !=(
-    std::nullptr_t left,
+inline bool operator!=(
+    std::nullptr_t,
     const DelayedDestructionBase::DestructorGuard& right) {
-  return left != right.get();
+  return nullptr != right.get();
 }
 
 template <typename LeftAliasType, typename RightAliasType>
@@ -281,27 +281,27 @@ inline bool operator !=(
   return left.get() != right.get();
 }
 template <typename LeftAliasType>
-inline bool operator ==(
+inline bool operator==(
     const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
-    std::nullptr_t right) {
-  return left.get() == right;
+    std::nullptr_t) {
+  return left.get() == nullptr;
 }
 template <typename RightAliasType>
-inline bool operator ==(
-    std::nullptr_t left,
+inline bool operator==(
+    std::nullptr_t,
     const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) {
-  return left == right.get();
+  return nullptr == right.get();
 }
 template <typename LeftAliasType>
-inline bool operator !=(
+inline bool operator!=(
     const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
-    std::nullptr_t right) {
-  return left.get() != right;
+    std::nullptr_t) {
+  return left.get() != nullptr;
 }
 template <typename RightAliasType>
-inline bool operator !=(
-    std::nullptr_t left,
+inline bool operator!=(
+    std::nullptr_t,
     const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) {
-  return left != right.get();
+  return nullptr != right.get();
 }
 } // namespace folly