Rewrite some string_view methods to avoid a -Wunreachable-code warning

The previous form was required for C++11 compatibility (C++11 support
was dropped in 2020).

PiperOrigin-RevId: 698018101
Change-Id: I814ec708ea211c4b90ee6a812db9961b5423c22e
diff --git a/absl/strings/string_view.h b/absl/strings/string_view.h
index 2803429..0f64a78 100644
--- a/absl/strings/string_view.h
+++ b/absl/strings/string_view.h
@@ -302,11 +302,10 @@
   // and an exception of type `std::out_of_range` will be thrown on invalid
   // access.
   constexpr const_reference at(size_type i) const {
-    return ABSL_PREDICT_TRUE(i < size())
-               ? ptr_[i]
-               : ((void)base_internal::ThrowStdOutOfRange(
-                      "absl::string_view::at"),
-                  ptr_[i]);
+    if (ABSL_PREDICT_FALSE(i >= size())) {
+      base_internal::ThrowStdOutOfRange("absl::string_view::at");
+    }
+    return ptr_[i];
   }
 
   // string_view::front()
@@ -394,11 +393,10 @@
   // `pos > size`.
   // Use absl::ClippedSubstr if you need a truncating substr operation.
   constexpr string_view substr(size_type pos = 0, size_type n = npos) const {
-    return ABSL_PREDICT_FALSE(pos > length_)
-               ? (base_internal::ThrowStdOutOfRange(
-                      "absl::string_view::substr"),
-                  string_view())
-               : string_view(ptr_ + pos, Min(n, length_ - pos));
+    if (ABSL_PREDICT_FALSE(pos > length_)) {
+      base_internal::ThrowStdOutOfRange("absl::string_view::substr");
+    }
+    return string_view(ptr_ + pos, Min(n, length_ - pos));
   }
 
   // string_view::compare()