36 lines · c
1namespace std {2struct string {3 string(const char *);4 ~string();5};6} // namespace std7 8namespace absl {9std::string StringsFunction(std::string s1) { return s1; }10class SomeContainer {};11namespace strings_internal {12void InternalFunction() {}13template <class P> void InternalTemplateFunction(P a) { int; }14} // namespace strings_internal15 16namespace container_internal {17struct InternalStruct {};18 19template <typename T> struct InternalTemplate {};20} // namespace container_internal21} // namespace absl22 23// should not trigger warnings because inside Abseil files24void DirectAcessInternal() {25 absl::strings_internal::InternalFunction();26 absl::strings_internal::InternalTemplateFunction<std::string>("a");27}28 29class FriendUsageInternal {30 friend struct absl::container_internal::InternalStruct;31};32 33namespace absl {34void OpeningNamespaceInternally() { strings_internal::InternalFunction(); }35} // namespace absl36