Build with C++23

Chromium moved to C++23 early this year. GN is reasonably self-contained
(build-wise), so hopefully this is uncontroversial.

Change-Id: Ic523d27f912b4f38cb124c170b0fd38052046376
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/22481
Reviewed-by: Takuto Ikuta <tikuta@google.com>
diff --git a/README.md b/README.md
index 3dd5219..cdcb8f4 100644
--- a/README.md
+++ b/README.md
@@ -90,7 +90,7 @@
 from Google's build infrastructure (see "Versioning and distribution" below for
 how this is expected to work).
 
-Alternatively, you can build GN from source with a C++17 compiler:
+Alternatively, you can build GN from source with a C++23 compiler:
 
     git clone https://gn.googlesource.com/gn
     cd gn
diff --git a/build/gen.py b/build/gen.py
index 432924e..736f609 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -509,7 +509,7 @@
         '-Wextra-semi',
         '-Wundef',
 
-        '-std=c++20'
+        '-std=c++23'
     ])
 
     if is_gcc(cxx):
@@ -607,7 +607,7 @@
         '/wd4505',
         '/wd4838',
         '/wd4996',
-        '/std:c++20',
+        '/std:c++23preview',
         '/GR-',
         '/D_HAS_EXCEPTIONS=0',
     ])