, bu sabah beni uyandırdı. Bu aslında neden çalışıyor? Sürece fonksiyon test
söz konusu olduğunda, bu işlev bir şey yapabilir nasıl hiçbir gövdeye sahiptir? Bunun neden ve nasıl çalıştığını bilmek istiyorum? Cevabını görmek gerçekten GERÇEKTİR.Neden bu çalışır (Templates, SFINAE). C++ dünkü yazıya atıfta
template<typename T>
class IsClassT {
private:
typedef char One;
typedef struct { char a[2]; } Two;
template<typename C> static One test(int C::*); //NO BODY HERE
template<typename C> static Two test(…); //NOR HERE
public:
enum { Yes = sizeof(IsClassT<T>::template test<T>(0)) == sizeof(One) };
enum { No = !Yes };
};
Bu çok ilginç bir fenomeni anlamak için şimdiden teşekkür ederiz.
, '3.2/2'FC ve gör' 3.2/3 '(kullanarak" nin "kullanımı" tanımına ve sonuçları üzerinde hem "bir şey". Bunun için herhangi bir hatayı hiçbir vücut olsun testi olmasına rağmen neden –