
Jaakko Järvi wrote:
On Jul 18, 2005, at 6:19 PM, Brock Peabody wrote:
When I try to compile my example in VC 7.1 I get an error that seems to indicate that the type being passed to the sig template is boost::tuples::null_type. Everything works if I hardwire it like:
template <class T> struct sig { typedef std::string type; };
Yes, a null_type is passed to sig. This is because the signature of the zero argument lambda function (in lambda_functor class) signature is instantiated always, regardless of whether it is called or not. And there the argument list is just null_type. Hence, the return type deduction is not allowed to cause a compilation error in the case where the argument tuple to sig is null_type.
FYI, this is a typical problem. Phoenix-2 has fixed this nagging problem. Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net