// bind.hpp
template< class A1 > class list1: private storage1< A1 >
{
template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
{
return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
}
template<class F, class A> void operator()(type<void>, F & f, A & a, int)
{
unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
}
}
Why add arguments int
/long
in operator()
?
If I delete these int
/long
, still pass compile.