Revert "Removed SFINAE so that error messages point to the right place". This triggers Boost.ResultOf issues due to forcing it to use decltype, which are avoided by is_callable

This reverts commit 3601a2ff95af1a066f56791e9199a9ce69bd1fbc.