Автоматическое определение существования функций или мемберов с данным именем в классе.
Хотелось бы знать, существуют ли трюки для A или/и B ?
template < typename T >
static int int_width_adapter(const T& t)
{
A. // если у T есть мембер width c типом int
return t.width;
B. // если у T есть функция width() возвращающая int
return t.width();
// статик ассерт.
};
Интересно 1. в рамках стандарта. 2. существующих компиляторов.
template < typename T >
static int int_width_adapter(const T& t)
{
A. // если у T есть мембер width c типом int
return t.width;
B. // если у T есть функция width() возвращающая int
return t.width();
// статик ассерт.
};
Интересно 1. в рамках стандарта. 2. существующих компиляторов.
