История изменений
Исправление IceRain, (текущая версия) :
Можно для SFINAE
#include <iostream>
template<typename T>
decltype(T::Field, void()) func(T*)
{
std::cout << "funcT" << std::endl;
}
void func(void*)
{
std::cout << "funcVoid" << std::endl;
}
struct Foo
{
int a{};
};
struct Bar
{
int Field{};
};
int main()
{
Foo f;
Bar b;
func(&f);
func(&b);
return 0;
}
Исходная версия IceRain, :
Можно для SFINAE #include <iostream>
template<typename T> decltype(T::Field, void()) func(T*) { std::cout << «funcT» << std::endl; }
void func(void*) { std::cout << «funcVoid» << std::endl; }
struct Foo { int a{}; };
struct Bar { int Field{}; };
int main() { Foo f; Bar b;
func(&f); func(&b); return 0; }