1
// bendecltype kodunun ilk pice başarısız ve olur // Hangi durumda
template<typename A, typename B> // 1
auto add(A const& a, B const& b) { return a + b; }
template<typename A, typename B> // 2
auto add(A const& a, B const& b) -> decltype(a + b) { return a + b; }
İkincisi aynı zamanda SFINAE-dostu –
@PiotrSkotnicki Bazı açıklamalar vermeyi düşünür müsünüz? Neden ilk kişi SFINAE dostu değil? – songyuanyao
@songyuanyao takip eden bir geri dönüş türündeki ifade, SFINAE ifadesi olarak işlev görür; Kötü biçimlendirilmişse, aşırı yüklenme aday kümesinden hariç tutulur. Bu, "auto" dönüş tipi kesintisi için tutmuyor (bir geri bildirim ifadesinde ifade, aşırı yük çözünürlüğü sırasında denetlenmez) –