1 #include <doctest/doctest.h> 2 3 DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN 4 #include <cstdint> 5 #include <sstream> 6 DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END 7 8 namespace user9a { 9 struct label 10 { labeluser9a::label11 label() 12 : i(0) {} 13 int i; 14 }; 15 } // namespace user9a 16 17 DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-declarations") 18 DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-prototypes") operator ==(const user9a::label & lhs,const user9a::label & rhs)19bool operator==(const user9a::label& lhs, const user9a::label& rhs) { return lhs.i == rhs.i; } 20 21 namespace user9b { 22 struct label 23 { labeluser9b::label24 label() 25 : i(0) {} 26 int i; 27 }; 28 } // namespace user9b 29 30 DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-declarations") 31 DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-prototypes") 32 operator ==(const user9b::label & lhs,const user9b::label & rhs)33bool operator==(const user9b::label& lhs, const user9b::label& rhs) { return lhs.i == rhs.i; } 34 35 TEST_CASE("namespace 9 both global") { 36 user9a::label a1; 37 user9a::label a2; 38 39 user9b::label b1; 40 user9b::label b2; 41 42 REQUIRE(a1 == a2); 43 REQUIRE(b1 == b2); 44 } 45