Hi, Is it possible to evaluate, whether a certain argument type given to a functor will lead to a valid expression with the result_of template? i am trying to achieve the following, maybe there is a better way to do it: template<class T, class F> Container< typename boost::result_of<F(T)>::type > transform( Container<T> c, F f, std::disable_if<valid_expression<F(Block<T>) > >::type* dummy = 0 ){ //slow default implementation Container<T> res(c.size()); std::transform(c.begin(),c.end(),res.begin(),f): return res; } //blocked implmentation of transform template<class T, class F> Container< typename boost::result_of<F(T)>::type > transform( Container<T>, F functor, std::enable_if<valid_expression<F(Block<T>) > >::type* dummy = 0 ){ //functor supports fast implementation Container<T> res(c.size()); std::transform(c.blocks().begin(),c.blocks().end(),res.blocks().begin(),functor): return res; } the question is, how valid_expression<F(Block<T>) > could be implemented and right now the only mechanism which get's close to what i want would be checking result_of<F(Block<T>)> is valid. Greetings, Oswin