Nest all namespaces

The compiler supports this now.  We can type less going forward.
No functional changes.

Signed-off-by: Stephan Pleines <pleines.stephan@gmail.com>
Change-Id: I29d6fa4f9aacc0e381f1a7637294db0392466995
diff --git a/aos/vision/blob/codec.cc b/aos/vision/blob/codec.cc
index 51ae129..be11281 100644
--- a/aos/vision/blob/codec.cc
+++ b/aos/vision/blob/codec.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/codec.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 size_t CalculateSize(const BlobList &blob_list) {
   size_t count = Int16Codec::kSize;
@@ -55,5 +54,4 @@
   return data;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/codec_test.cc b/aos/vision/blob/codec_test.cc
index d510e58..889dfbb 100644
--- a/aos/vision/blob/codec_test.cc
+++ b/aos/vision/blob/codec_test.cc
@@ -4,8 +4,7 @@
 
 #include "gtest/gtest.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 TEST(CodecTest, WriteRead) {
   BlobList blobl;
@@ -34,5 +33,4 @@
   EXPECT_EQ(real_len, CalculateSize(blobl));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/contour.cc b/aos/vision/blob/contour.cc
index 6a56f9e..5e82d4c 100644
--- a/aos/vision/blob/contour.cc
+++ b/aos/vision/blob/contour.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/contour.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 // Half-loop of a contour.
@@ -191,5 +190,4 @@
   return plst[0].st;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/find_blob.cc b/aos/vision/blob/find_blob.cc
index ab65e34..8ee8e92 100644
--- a/aos/vision/blob/find_blob.cc
+++ b/aos/vision/blob/find_blob.cc
@@ -2,8 +2,7 @@
 
 #include "aos/vision/blob/disjoint_set.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 struct BlobBuilder {
   BlobBuilder(int i) : min_y(i) {}
@@ -173,5 +172,4 @@
   return blob_set.MoveBlobs();
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/hierarchical_contour_merge.cc b/aos/vision/blob/hierarchical_contour_merge.cc
index c7de4de..06c34d4 100644
--- a/aos/vision/blob/hierarchical_contour_merge.cc
+++ b/aos/vision/blob/hierarchical_contour_merge.cc
@@ -5,8 +5,7 @@
 
 #include "aos/vision/blob/disjoint_set.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 
@@ -248,5 +247,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/move_scale.cc b/aos/vision/blob/move_scale.cc
index 1caa479..45337fc 100644
--- a/aos/vision/blob/move_scale.cc
+++ b/aos/vision/blob/move_scale.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/move_scale.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage MoveScale(const RangeImage &img, int dx, int dy, int scale) {
   std::vector<std::vector<ImageRange>> out_range_list;
@@ -38,5 +37,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/range_image.cc b/aos/vision/blob/range_image.cc
index bf8d09f..92f77cc 100644
--- a/aos/vision/blob/range_image.cc
+++ b/aos/vision/blob/range_image.cc
@@ -3,8 +3,7 @@
 #include <algorithm>
 #include <cmath>
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 namespace {
 
 // Merge sort of multiple range images into a single range image.
@@ -142,5 +141,4 @@
   return area;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/test_utils.cc b/aos/vision/blob/test_utils.cc
index 7664f8a..0e7240f 100644
--- a/aos/vision/blob/test_utils.cc
+++ b/aos/vision/blob/test_utils.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/test_utils.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage LoadFromTestData(int mini, const char *data) {
   // Consume initial return.
@@ -39,5 +38,4 @@
   return RangeImage(mini, std::move(rows));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/threshold.cc b/aos/vision/blob/threshold.cc
index c4f8a9e..5403bbd 100644
--- a/aos/vision/blob/threshold.cc
+++ b/aos/vision/blob/threshold.cc
@@ -2,8 +2,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 namespace {
 
 constexpr int kChunkSize = 8;
@@ -123,5 +122,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/threshold_test.cc b/aos/vision/blob/threshold_test.cc
index 67f7116..4b23f3e 100644
--- a/aos/vision/blob/threshold_test.cc
+++ b/aos/vision/blob/threshold_test.cc
@@ -9,9 +9,7 @@
 #include "aos/vision/blob/range_image.h"
 #include "aos/vision/image/image_types.h"
 
-namespace aos {
-namespace vision {
-namespace testing {
+namespace aos::vision::testing {
 
 class YuyvYThresholdTest : public ::testing::Test {
  public:
@@ -189,6 +187,4 @@
   }
 }
 
-}  // namespace testing
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision::testing
diff --git a/aos/vision/blob/transpose.cc b/aos/vision/blob/transpose.cc
index fe4d4a9..b59e8c5 100644
--- a/aos/vision/blob/transpose.cc
+++ b/aos/vision/blob/transpose.cc
@@ -3,8 +3,7 @@
 #include <algorithm>
 #include <limits>
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage Transpose(const RangeImage &img) {
   enum EventT {
@@ -87,5 +86,4 @@
   return RangeImage(min_y, std::move(rows));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/transpose_test.cc b/aos/vision/blob/transpose_test.cc
index 6582b5d..a4a9705 100644
--- a/aos/vision/blob/transpose_test.cc
+++ b/aos/vision/blob/transpose_test.cc
@@ -7,8 +7,7 @@
 
 #include "aos/vision/blob/test_utils.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 TEST(TransposeTest, Tranpspose) {
   RangeImage img = LoadFromTestData(20, R"(
@@ -27,5 +26,4 @@
   EXPECT_EQ(ShortDebugPrint({img}), ShortDebugPrint({c}));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/aveugle-source.cc b/aos/vision/debug/aveugle-source.cc
index 65a8e84..46b9694 100644
--- a/aos/vision/debug/aveugle-source.cc
+++ b/aos/vision/debug/aveugle-source.cc
@@ -7,8 +7,7 @@
 #include "aos/vision/image/camera_params.pb.h"
 #include "aos/vision/image/image_stream.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 class AveugleImageSource : public ImageSource {
  public:
@@ -73,5 +72,4 @@
 
 REGISTER_IMAGE_SOURCE("jevois", AveugleImageSource);
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/blob_log-source.cc b/aos/vision/debug/blob_log-source.cc
index 4dd5675..c5ee67c 100644
--- a/aos/vision/debug/blob_log-source.cc
+++ b/aos/vision/debug/blob_log-source.cc
@@ -14,8 +14,7 @@
 #include "aos/vision/debug/debug_framework.h"
 #include "aos/vision/debug/overlay.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 
@@ -365,5 +364,4 @@
 
 REGISTER_IMAGE_SOURCE("blob_log", BlobLogImageSource);
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/camera-source.cc b/aos/vision/debug/camera-source.cc
index 578ebc1..685b7eb 100644
--- a/aos/vision/debug/camera-source.cc
+++ b/aos/vision/debug/camera-source.cc
@@ -7,8 +7,7 @@
 #include "aos/vision/image/camera_params.pb.h"
 #include "aos/vision/image/image_stream.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 class CameraImageSource : public ImageSource {
  public:
@@ -63,5 +62,4 @@
 
 REGISTER_IMAGE_SOURCE("camera", CameraImageSource);
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/debug_framework.cc b/aos/vision/debug/debug_framework.cc
index 0b0d2c7..770eefd 100644
--- a/aos/vision/debug/debug_framework.cc
+++ b/aos/vision/debug/debug_framework.cc
@@ -9,8 +9,7 @@
 #include "aos/vision/events/epoll_events.h"
 #include "aos/vision/image/jpeg_routines.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 // Detect screen height on smaller monitors.
 int GetScreenHeight() {
@@ -176,5 +175,4 @@
   replay.Loop()->RunWithGtkMain();
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/debug_window.cc b/aos/vision/debug/debug_window.cc
index b998c03..40d1468 100644
--- a/aos/vision/debug/debug_window.cc
+++ b/aos/vision/debug/debug_window.cc
@@ -12,8 +12,7 @@
 
 #include "aos/vision/image/image_types.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 template <typename T, gboolean (T::*DrawMethod)(cairo_t *cr)>
 gboolean DrawCallback(GtkWidget *, cairo_t *cr, gpointer data) {
@@ -181,5 +180,4 @@
   cairo_restore(cr_);
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/jpeg_list-source.cc b/aos/vision/debug/jpeg_list-source.cc
index ecc3f14..7c6c9dc 100644
--- a/aos/vision/debug/jpeg_list-source.cc
+++ b/aos/vision/debug/jpeg_list-source.cc
@@ -6,8 +6,7 @@
 #include "aos/vision/debug/debug_framework.h"
 #include "aos/vision/image/image_dataset.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 class JpegListImageSource : public ImageSource {
  public:
@@ -65,5 +64,4 @@
 
 REGISTER_IMAGE_SOURCE("jpeg_list", JpegListImageSource);
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/debug/tcp-source.cc b/aos/vision/debug/tcp-source.cc
index de406ae..7749f5c 100644
--- a/aos/vision/debug/tcp-source.cc
+++ b/aos/vision/debug/tcp-source.cc
@@ -12,8 +12,7 @@
 #include "aos/vision/debug/debug_framework.h"
 #include "aos/vision/events/tcp_client.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 // Reads packets in the form:
 // uint32 length
@@ -152,5 +151,4 @@
 
 REGISTER_IMAGE_SOURCE("tcp", TCPImageSource);
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/events/epoll_events.cc b/aos/vision/events/epoll_events.cc
index e417f0d..1a5ad7e 100644
--- a/aos/vision/events/epoll_events.cc
+++ b/aos/vision/events/epoll_events.cc
@@ -10,8 +10,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 void EpollEvent::DirectEvent(uint32_t events) {
   if ((events & ~(EPOLLIN | EPOLLPRI | EPOLLERR)) != 0) {
@@ -72,5 +71,4 @@
   return r;
 }
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/events/gtk_event.cc b/aos/vision/events/gtk_event.cc
index e1e4e08..7df0716 100644
--- a/aos/vision/events/gtk_event.cc
+++ b/aos/vision/events/gtk_event.cc
@@ -9,8 +9,7 @@
 #include "aos/logging/logging.h"
 #include "aos/vision/events/epoll_events.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 void EpollLoop::RunWithGtkMain() {
   int timeout;
@@ -69,5 +68,4 @@
   exit(EXIT_SUCCESS);
 }
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/events/intrusive_free_list.h b/aos/vision/events/intrusive_free_list.h
index 0373741..db096b7 100644
--- a/aos/vision/events/intrusive_free_list.h
+++ b/aos/vision/events/intrusive_free_list.h
@@ -1,8 +1,7 @@
 #ifndef _AOS_VISION_EVENTS_INTRUSIVE_FREE_LIST_H_
 #define _AOS_VISION_EVENTS_INTRUSIVE_FREE_LIST_H_
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 // Hey! Maybe you want a doubly linked list that frees things for you!
 // This allows the entry to delete itself, removing it from the list, or
@@ -75,7 +74,6 @@
   T *begin_;
 };
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
 
 #endif  // _AOS_VISION_EVENTS_INTRUSIVE_FREE_LIST_H_
diff --git a/aos/vision/events/tcp_client.cc b/aos/vision/events/tcp_client.cc
index 0a926db..65b646c 100644
--- a/aos/vision/events/tcp_client.cc
+++ b/aos/vision/events/tcp_client.cc
@@ -15,8 +15,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 namespace {
 int MakeSocketNonBlocking(int sfd) {
@@ -63,5 +62,4 @@
 TcpClient::TcpClient(const std::string &hostname, int portno)
     : EpollEvent(OpenClient(hostname, portno)) {}
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/events/tcp_server.cc b/aos/vision/events/tcp_server.cc
index cf4dd7f..fa2a369 100644
--- a/aos/vision/events/tcp_server.cc
+++ b/aos/vision/events/tcp_server.cc
@@ -16,8 +16,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 namespace {
 
@@ -108,5 +107,4 @@
   loop()->Add(Construct(infd));
 }
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/events/udp.cc b/aos/vision/events/udp.cc
index 2aaac82..cf7ad23 100644
--- a/aos/vision/events/udp.cc
+++ b/aos/vision/events/udp.cc
@@ -4,8 +4,7 @@
 
 #include "glog/logging.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 TXUdpSocket::TXUdpSocket(const std::string &ip_addr, int port)
     : fd_(socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) {
@@ -49,5 +48,4 @@
   return result;
 }
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/events/udp_test.cc b/aos/vision/events/udp_test.cc
index 33fb4d6..506be28 100644
--- a/aos/vision/events/udp_test.cc
+++ b/aos/vision/events/udp_test.cc
@@ -2,8 +2,7 @@
 
 #include "gtest/gtest.h"
 
-namespace aos {
-namespace events {
+namespace aos::events {
 
 TEST(UDPTest, SendRecv) {
   RXUdpSocket rx(1109);
@@ -19,5 +18,4 @@
   EXPECT_EQ(txdata[3], rxdata[3]);
 }
 
-}  // namespace events
-}  // namespace aos
+}  // namespace aos::events
diff --git a/aos/vision/image/image_dataset.cc b/aos/vision/image/image_dataset.cc
index a15ccb4..82a8886 100644
--- a/aos/vision/image/image_dataset.cc
+++ b/aos/vision/image/image_dataset.cc
@@ -4,8 +4,7 @@
 
 #include "aos/vision/image/image_types.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 std::string GetFileContents(const std::string &filename) {
@@ -82,5 +81,4 @@
   return images;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/image/image_stream.cc b/aos/vision/image/image_stream.cc
index 62f5e81..fe42efc 100644
--- a/aos/vision/image/image_stream.cc
+++ b/aos/vision/image/image_stream.cc
@@ -2,8 +2,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 void ImageStreamEvent::ProcessHelper(
     DataRef data, aos::monotonic_clock::time_point timestamp) {
@@ -14,5 +13,4 @@
   ProcessImage(data, timestamp);
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/image/jpeg_routines.cc b/aos/vision/image/jpeg_routines.cc
index b41729f..9d46895 100644
--- a/aos/vision/image/jpeg_routines.cc
+++ b/aos/vision/image/jpeg_routines.cc
@@ -14,8 +14,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 
@@ -248,5 +247,4 @@
   return true;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/math/vector_test.cc b/aos/vision/math/vector_test.cc
index 8c5244d..214a50c 100644
--- a/aos/vision/math/vector_test.cc
+++ b/aos/vision/math/vector_test.cc
@@ -2,9 +2,7 @@
 
 #include "gtest/gtest.h"
 
-namespace aos {
-namespace vision {
-namespace testing {
+namespace aos::vision::testing {
 
 class VectorTest : public ::testing::Test {
  protected:
@@ -71,6 +69,4 @@
   EXPECT_NEAR(M_PI / 3, vec5.AngleToZero(), 0.0001);
 }
 
-}  // namespace testing
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision::testing
diff --git a/aos/vision/tools/jpeg_vision_test.cc b/aos/vision/tools/jpeg_vision_test.cc
index ef2ec6d..553419a 100644
--- a/aos/vision/tools/jpeg_vision_test.cc
+++ b/aos/vision/tools/jpeg_vision_test.cc
@@ -25,8 +25,7 @@
 #include "aos/vision/image/reader.h"
 #include "aos/vision/math/vector.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 void DrawVLine(ImagePtr ptr, int x, PixelRef color = {255, 0, 0}) {
   for (int y = 0; y < ptr.fmt().h; ++y) {
@@ -108,8 +107,7 @@
   int dx = 0;
   int dy = 0;
 };
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
 
 int main(int argc, char *argv[]) {
   ::aos::logging::Init();