Delete android::base::expected::operator bool()

This was deemed too error-prone for the little ergonomics it brings.
Simply write "if (e.ok()) {...}" instead.

Note that, even if the operator was marked explicit, it would be
implicitly invoked in a boolean context.

Bug: 176148206
Test: m checkbuild continuous_instrumentation_tests continuous_instrumentation_tests_api_coverage continuous_native_tests device-tests platform_tests
Exempt-From-Owner-Approval: LSC, already approved in Feb 2020 on different git repo
Change-Id: I8d40b1e3cb5d2f76baf77b8a190df4366909f7b6
diff --git a/include/android-base/expected.h b/include/android-base/expected.h
index 9668612..11cf1ac 100644
--- a/include/android-base/expected.h
+++ b/include/android-base/expected.h
@@ -330,7 +330,6 @@
   constexpr const T&& operator*() const&& { return std::move(std::get<T>(var_)); }
   constexpr T&& operator*() && { return std::move(std::get<T>(var_)); }
 
-  constexpr explicit operator bool() const noexcept { return has_value(); }
   constexpr bool has_value() const noexcept { return var_.index() == 0; }
   constexpr bool ok() const noexcept { return has_value(); }
 
@@ -558,7 +557,6 @@
   }
 
   // observers
-  constexpr explicit operator bool() const noexcept { return has_value(); }
   constexpr bool has_value() const noexcept { return var_.index() == 0; }
   constexpr bool ok() const noexcept { return has_value(); }