Базовый класс Содержит открытую панель функций ().foo () - это универсальная функция, которая принимает один параметр. Когда я передаю Object производного класса, он работает нормально, но когда я передаю встроенный тип данных, он должен выдавать исключение, но он показывает ошибку времени компиляции C2228 В Visual Studio.
class Base
{
public:
void Bar();
};
class Derived:Base
{};
template<typename T>
void foo(T object)
{
if(std::is_base_of<Base,T>::value == true)
object.Bar();//Control does not reaches the point
else
throw "Invalid Parameter";
}
int main()
{
Derived objDerived;
foo(objDerived); //WORKS GOOD
foo(2);//ERROR C2228
}