
I'd like to be able to make certain that a function/functor returns a double precision floating point value. I was always under the impression that it's essentially impossible to check things based on return type. Is there a way to do this? Something like BOOST_STATIC_ASSERT, who knows perhaps that *can* do it.. Ideally I would like to have some sort of compile type warning so that in the following context, class myclass { public: ... template <class O> a_func(O functor) { ASSERT_IS_A_FUNCTOR(O); ASSERT_RETURN_TYPE_CONVERTABLE_TO_FLOAT(O); } }; if O is compatible with the concept of a functor and O returns a type that can be converted to a float, then we are good to go -- otherwise I'd like an intelligible error. If, for example, O is of the type 'void (*)()' I'd like it (the compiler) to spit out, "The function pointer of type O must of signature float (*)()" Any ideas? -ed ------------------------------------------------ "No more boom and bust." -- Dr. J. G. Brown, 1997