Added sfinae to detect the presence of a method with a given signature
Converted the sfinae poc into a macro