Do not use iterators in ParsedQuicVersionIsValid

This CL fixes a Chrome merge. The issue is that Chrome uses C++14 whereas g3 uses C++17, and std::array::begin() is only constexpr starting in C++17.

gfe-relnote: n/a, no behavior change
PiperOrigin-RevId: 301399514
Change-Id: I2a86e234950d35ff6022285eb592cbd4576881f8
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index bf6c39b..8739326 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -172,7 +172,10 @@
       transport_version == QUIC_VERSION_UNSUPPORTED ||
       transport_version == QUIC_VERSION_RESERVED_FOR_NEGOTIATION;
   if (!transport_version_is_valid) {
-    for (QuicTransportVersion trans_vers : SupportedTransportVersions()) {
+    // Iterators are not constexpr in C++14 which Chrome uses.
+    constexpr auto supported_transport_versions = SupportedTransportVersions();
+    for (size_t i = 0; i < supported_transport_versions.size(); ++i) {
+      const QuicTransportVersion& trans_vers = supported_transport_versions[i];
       if (trans_vers == transport_version) {
         transport_version_is_valid = true;
         break;