move SFINAE code from parameter to return value