Я пытаюсь реализовать шаблон is_base, и у меня есть «небольшая проблема». Почему это не работает, поскольку это suppouse?Проблема с строкой SFINAE
#include <iostream>
using std::cout;
class Car
{
};
class Fiesta : public Car
{
};
template<class Base, class Derived>
struct isBase
{
typedef char yes[2];
typedef char no[1];
template<class B, class D>
static yes& f(D* d, B* b = d);
template<class,class>
static no& f(...);
static bool type;
};
template<class Base, class Derived>
bool isBase<Base,Derived>::type = (sizeof(f<Base,Derived>(0,0)) == sizeof(yes));
int _tmain(int argc, _TCHAR* argv[])
{
cout << isBase<Fiesta,Car>::type;//It should say false here but says true
return 0;
}
отлично, я знал, что я испортил что-то с моим первым fnc. Благодарю. –
и спасибо за ваши советы и исправления –