This code is from C++ STL v3.3 concept_checks.h, 293-300:
template <class _Func, class _Arg>
struct _STL_UNARY_FUNCTION_ERROR<_Func, void, _Arg> {
static void
__unary_function_requirement_violation(_Func& __f,
const _Arg& __arg) {
__f(__arg);
}
};
Does C++ allow a template to be defined like "struct structname<..>"?
In the above example, what is the use of "<_Func, void, _Arg>"?
If we delete "<_Func, void, _Arg>", does it affect anything?