Dear all, I am working in an application where I use Proto to evaluate an expression template like _1 >> f >> g to g(f(x)) once x is assigned to _1. (Please note that f and g are not necessarily functions -- they might be function objects too.) I am interested in putting a compile-time sanity check to ensure that the functions/function objects f and g do indeed return a double (or something convertible to it). For that, I wrote the following grammar which GCC 4.5.1 (Boost 1.42, MinGW32, WinXP, SP3) doesn't like, with the error messages being at the P.S. section: struct EmtnRet2DblChk: (The above code starts in my line 81 and ends in my line 98.) Any idea please? TIA, --Hossein P.S. Compiling: main.cpp main.cpp:98:2: error: template argument 1 is
invalid main.cpp:92:22: error: wrong number of template arguments (1, should be 2) /boost/type_traits/is_convertible.hpp:418:1: error: provided for 'template<class From, class To> struct boost::is_convertible' main.cpp:90:21: error: template argument 1 is invalid main.cpp:88:4: error: template argument 2 is invalid 85:3: error: template argument 2 is invalid main.cpp:98:3: error: expected '{' before ';' token |