Build with -std=c++17 on some platforms

This is to find unknown things that break with -std=c++17.

Do NOT use C++17 features anywhere yet. We'll likely have to revert
this again in a bit.

This does NOT enable C++17 on iOS, macOS, and Windows -- there are
a few (likely small) kinks we have to work out first on those
platforms.

It does enable C++17 on Android, Cast, Chrome OS, Fuchsia, Linux.

Bug: 752720
Change-Id: I1b6bb6c8094de2a03f8d9d34fd02952bd6a7538f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3297210
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/main@{#945488}
NOKEYCHECK=True
GitOrigin-RevId: 72e9baeeb045bec3dddf2c0dfea0cba2dc9facc8
diff --git a/BUILD.gn b/BUILD.gn
index dd6d67f..39d98be 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -7,6 +7,7 @@
 # without these options will be part of the same program.
 
 import("//build/config/c++/c++.gni")
+import("//build/config/nacl/config.gni")
 import("//build/config/sanitizers/sanitizers.gni")
 import("//build/toolchain/toolchain.gni")
 import("//build_overrides/build.gni")
@@ -16,6 +17,9 @@
   defines = [ "ABSL_CONSUME_DLL" ]
 }
 
+assert(!is_nacl || is_nacl_saigo,
+       "base must not be built in most nacl toolchains")
+
 component("absl") {
   public_deps = [ ":absl_component_deps" ]
   if (is_component_build) {