@@ -47,8 +47,6 @@ namespace test_mirror
4747 fns.push_back (rtl::type ().member <Animal>()
4848 .methodStatic <const std::string&>(animal::str_updateZooKeeper)
4949 .build (&Animal::updateZooKeeper));
50-
51- #if defined(__GNUC__) && !defined(__clang__)
5250/*
5351 GCC here fails to automatically resolve the correct overloaded functor
5452 when both a lvalue reference and an rvalue overload exist.
@@ -71,22 +69,5 @@ namespace test_mirror
7169 fns.push_back (rtl::type ().member <Animal>()
7270 .methodStatic <std::string&&>(animal::str_updateZooKeeper)
7371 .build (static_cast <std::string (*)(std::string&&)>(&Animal::updateZooKeeper))); // static method, taking rvalue reference as argument.
74- #else
75- fns.push_back (rtl::type ().member <Animal>()
76- .method <std::string&>(animal::str_setAnimalName)
77- .build (&Animal::setAnimalName)); // overloaded method, taking non-const lvalue reference as argument.
78-
79- fns.push_back (rtl::type ().member <Animal>()
80- .method <std::string&&>(animal::str_setAnimalName)
81- .build (&Animal::setAnimalName)); // overloaded method, taking rvalue reference as argument.
82-
83- fns.push_back (rtl::type ().member <Animal>()
84- .methodStatic <std::string&>(animal::str_updateZooKeeper)
85- .build (&Animal::updateZooKeeper)); // static method, taking non-const lvalue reference as argument.
86-
87- fns.push_back (rtl::type ().member <Animal>()
88- .methodStatic <std::string&&>(animal::str_updateZooKeeper)
89- .build (&Animal::updateZooKeeper)); // static method, taking rvalue reference as argument.
90- #endif
9172 }
9273}
0 commit comments