Make ScopedFD's bool operator explicit

This prevents an implicit conversion from bool->int to ensure the user is
calling .get() properly.

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I914c0e9583fbfcaa7fafeb0474dbe068716ae19d
diff --git a/aos/scoped/scoped_fd.h b/aos/scoped/scoped_fd.h
index 116985a..e393e89 100644
--- a/aos/scoped/scoped_fd.h
+++ b/aos/scoped/scoped_fd.h
@@ -35,7 +35,7 @@
       fd_ = new_fd;
     }
   }
-  operator bool() const { return fd_ != -1; }
+  explicit operator bool() const { return fd_ != -1; }
 
  private:
   int fd_;
diff --git a/frc971/can_logger/can_logger.cc b/frc971/can_logger/can_logger.cc
index e7e1e6f..ad885de 100644
--- a/frc971/can_logger/can_logger.cc
+++ b/frc971/can_logger/can_logger.cc
@@ -32,7 +32,7 @@
   CHECK_EQ(opt_size, sizeof(recieve_buffer_size));
   VLOG(0) << "CAN recieve bufffer is " << recieve_buffer_size << " bytes large";
 
-  event_loop->epoll()->OnReadable(fd_, [this]() { Poll(); });
+  event_loop->epoll()->OnReadable(fd_.get(), [this]() { Poll(); });
 }
 
 void CanLogger::Poll() {
diff --git a/y2023/vision/camera_reader.cc b/y2023/vision/camera_reader.cc
index abffac0..668026a 100644
--- a/y2023/vision/camera_reader.cc
+++ b/y2023/vision/camera_reader.cc
@@ -139,7 +139,7 @@
 
     LOG(INFO) << "Opening " << rkisp1_params->device();
     aos::ScopedFD fd(open(rkisp1_params->device().c_str(), O_RDWR));
-    PCHECK(fd >= 0);
+    PCHECK(fd.get() >= 0);
 
     struct v4l2_capability capability;
     memset(&capability, 0, sizeof(capability));