@@ -40,6 +40,11 @@ namespace internal
40
40
*
41
41
* When reinterpret_cast causes a compiler warning or error, this function
42
42
* may work. Intended mainly for conversion between different types of pointers.
43
+ *
44
+ * Qualify calls with namespace names: sigc::internal::bitwise_equivalent_cast<>().
45
+ * If you don't, indirect calls from another library that also contains a
46
+ * bitwise_equivalent_cast<>() (perhaps glibmm), can be ambiguous due to ADL
47
+ * (argument-dependent lookup).
43
48
*/
44
49
template <typename out_type, typename in_type>
45
50
inline out_type bitwise_equivalent_cast (in_type in)
@@ -153,7 +158,7 @@ struct slot_call
153
158
/* * Forms a function pointer from call_it().
154
159
* @return A function pointer formed from call_it().
155
160
*/
156
- static hook address () { return bitwise_equivalent_cast<hook>(&call_it); }
161
+ static hook address () { return sigc::internal:: bitwise_equivalent_cast<hook>(&call_it); }
157
162
};
158
163
159
164
} /* namespace internal */
@@ -211,7 +216,7 @@ class slot<T_return(T_arg...)> : public slot_base
211
216
inline T_return operator ()(type_trait_take_t <T_arg>... a) const
212
217
{
213
218
if (!empty () && !blocked ()) {
214
- return std::invoke (internal::bitwise_equivalent_cast<call_type>(slot_base::rep_->call_ ), slot_base::rep_, a...);
219
+ return std::invoke (sigc:: internal::bitwise_equivalent_cast<call_type>(slot_base::rep_->call_ ), slot_base::rep_, a...);
215
220
}
216
221
217
222
return T_return ();
0 commit comments