A lot of work can be save by ignoring the function signature. template<class _R2, class _Cp> static bool __not_null( t c::* p ) { return pm; } http://reviews.llvm.org/D9873 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/