Я пытаюсь вычесть шаблон функции на основе класса объекта, вызывающего функцию. Как я могу это сделать?
#include <type_traits>
struct B;
template<typename T>
bool f(const T*) { return std::is_same<T, B>::value; }
struct A {
bool g() { return f(this); }
};
struct B:A {};
int main() {
B b_obj;
return b_obj.g(); // returns false
}
Создание виртуального g
тоже не помогает. Как я могу заставить b_obj.g()
вернуть true?