紧凑的嵌套命名空间

Version >= C++ 17

namespace a {
  namespace b {
    template<class T>
    struct qualifies : std::false_type {};
  }
}

namespace other {
  struct bob {};
}

namespace a::b {
  template<>
  struct qualifies<::other::bob> : std::true_type {};
}

你可以使用 namespace a::b 从 C++ 17 开始一步输入 a 和 b 命名空间。