X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fmeta.h;h=8015f42370837e2ba6633acb0ee9b50a87ca9273;hp=a13f5cb3a5714de60aba9a7bdc5682370aac110a;hb=f635ee3173be05375cd7d5c7a8edfbfb61f70d60;hpb=eb4b0279cb697b3350cd34acfd7fdddad5227325 diff --git a/source/core/meta.h b/source/core/meta.h index a13f5cb..8015f42 100644 --- a/source/core/meta.h +++ b/source/core/meta.h @@ -23,6 +23,11 @@ struct RemoveReference { typedef T Type; }; +template +struct RemoveConstReference +{ typedef typename RemoveConst::Type>::Type Type; }; + + template struct EnableIf; @@ -43,10 +48,13 @@ struct Sfinae struct Yes { char c[2]; }; struct No { char c; }; - template + template + static No f(...); + + template struct Evaluate { - enum { value = (s==sizeof(Yes)) }; + enum { value = (sizeof(C::template f(0))==sizeof(Yes)) }; }; };