• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 namespace std {
2 struct string {
3   string(const char *);
4   ~string();
5 };
6 } // namespace std
7 
8 namespace absl {
StringsFunction(std::string s1)9 std::string StringsFunction(std::string s1) { return s1; }
10 class SomeContainer {};
11 namespace strings_internal {
InternalFunction()12 void InternalFunction() {}
InternalTemplateFunction(P a)13 template <class P> P InternalTemplateFunction(P a) {}
14 } // namespace strings_internal
15 
16 namespace container_internal {
17 struct InternalStruct {};
18 
19 template <typename T> struct InternalTemplate {};
20 } // namespace container_internal
21 } // namespace absl
22 
23 // should not trigger warnings because inside Abseil files
DirectAcessInternal()24 void DirectAcessInternal() {
25   absl::strings_internal::InternalFunction();
26   absl::strings_internal::InternalTemplateFunction<std::string>("a");
27 }
28 
29 class FriendUsageInternal {
30   friend struct absl::container_internal::InternalStruct;
31 };
32 
33 namespace absl {
OpeningNamespaceInternally()34 void OpeningNamespaceInternally() { strings_internal::InternalFunction(); }
35 } // namespace absl
36