Bağımsız değişkenler (13.4p1) olmaksızın aşırı yüklenmiş işlev adının kullanılması şarkıya çözümlenmelidir. le aşırı yükleme (13.4p4), aksi takdirde ikame hatası meydana gelecektir. Eğer variadic şablonu ve result_of
benzer bir desen kullanabilirsiniz Genelde
template <typename C> static one test(
typename std::add_pointer<decltype(std::declval<C>().AnyFunc())>::type);
:
o zaman sen bunu aramak için plan argümanları bilmelidir üye işlevin varlığı için test ediyorsanız :
template <typename C, typename... Args> static one test(
typename std::add_pointer<decltype(
std::declval<C>(std::declval<Args>()...).AnyFunc())>::type);
add_pointer
kullanmak, bu fonksiyon argüman türleri olarak izin verilen değil işlev dönüş türleri ile çalışma olanağı sağlar (örneğin void
).
İyi soru. SFINAE nedeniyle sessizce fark edilemeyecek kadar önemsiz bir problem. – iammilind