type trait for types with operator()