Skip to content

Commit a2cde62

Browse files
committed
tempirarily expanded macro to isolate problem with VS2017
1 parent bccbd1a commit a2cde62

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

include/boost/mp11/lambda.hpp

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,35 @@ template<class R, class C, class... T> struct lambda_impl<R (C::*)(T..., ...) qu
138138

139139
#define BOOST_MP11_EMPTY()
140140

141-
BOOST_MP11_SPECIALIZE_LAMBDA_IMPL_FUNCTION(BOOST_MP11_EMPTY())
141+
// temporary macro expansion
142+
// BOOST_MP11_SPECIALIZE_LAMBDA_IMPL_FUNCTION(BOOST_MP11_EMPTY())
143+
144+
template<class R, class... T> struct lambda_impl<R(T...) >
145+
{
146+
template<class Q, class... U> using make = Q(U...) ;
147+
using type = mp_bind_q<lambda_devoid_args<make>, mp_lambda<R>, mp_lambda<T>...>;
148+
};
149+
150+
template<class R, class... T> struct lambda_impl<R(T..., ...) >
151+
{
152+
template<class Q, class... U> using make = Q(U..., ...) ;
153+
using type = mp_bind_q<lambda_devoid_args<make>, mp_lambda<R>, mp_lambda<T>...>;
154+
};
155+
156+
template<class R, class C, class... T> struct lambda_impl<R (C::*)(T...) >
157+
{
158+
template<class Q, class D, class... U> using make = Q (D::*)(U...) ;
159+
using type = mp_bind_q<
160+
lambda_devoid_args<make>, mp_lambda<R>, mp_lambda<C>, mp_lambda<T>...>;
161+
};
162+
163+
template<class R, class C, class... T> struct lambda_impl<R (C::*)(T..., ...) >
164+
{
165+
template<class Q, class D, class... U> using make = Q (D::*)(U..., ...) ;
166+
using type = mp_bind_q<
167+
lambda_devoid_args<make>, mp_lambda<R>, mp_lambda<C>, mp_lambda<T>...>;
168+
};
169+
142170
BOOST_MP11_SPECIALIZE_LAMBDA_IMPL_FUNCTION(const)
143171
BOOST_MP11_SPECIALIZE_LAMBDA_IMPL_FUNCTION(volatile)
144172
BOOST_MP11_SPECIALIZE_LAMBDA_IMPL_FUNCTION(const volatile)

0 commit comments

Comments
 (0)