Skip to content

Commit c3b4b58

Browse files
committed
Extended CWPro8 overload ambiguity workaround to cover make_setter as
well as make_getter. [SVN r19519]
1 parent 568b62a commit c3b4b58

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

include/boost/python/data_members.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ namespace detail
261261

262262
// Handle non-member pointers
263263
template <class D, class Policies>
264-
inline object make_setter(D* p, Policies const& policies, int)
264+
inline object make_setter(D* p, Policies const& policies, mpl::false_, int)
265265
{
266266
return objects::function_object(
267267
objects::py_function(
@@ -275,7 +275,7 @@ namespace detail
275275

276276
// Handle pointers-to-members
277277
template <class C, class D, class Policies>
278-
inline object make_setter(D C::*pm, Policies const& policies, int)
278+
inline object make_setter(D C::*pm, Policies const& policies, mpl::true_, int)
279279
{
280280
return objects::function_object(
281281
objects::py_function(
@@ -289,9 +289,9 @@ namespace detail
289289

290290
// Handle references
291291
template <class D, class Policies>
292-
inline object make_setter(D& x, Policies const& policies, ...)
292+
inline object make_setter(D& x, Policies const& policies, mpl::false_, ...)
293293
{
294-
return detail::make_setter(&x, policies, 0L);
294+
return detail::make_setter(&x, policies, mpl::false_(), 0L);
295295
}
296296
}
297297

@@ -340,13 +340,13 @@ inline object make_getter(D const& d)
340340
template <class D, class Policies>
341341
inline object make_setter(D& x, Policies const& policies)
342342
{
343-
return detail::make_setter(x, policies, 0);
343+
return detail::make_setter(x, policies, is_member_pointer<D>(), 0);
344344
}
345345

346346
template <class D, class Policies>
347347
inline object make_setter(D const& x, Policies const& policies)
348348
{
349-
return detail::make_setter(x, policies, 0);
349+
return detail::make_setter(x, policies, is_member_pointer<D>(), 0);
350350
}
351351

352352
template <class D>

0 commit comments

Comments
 (0)