clang does not accept this without template keyword