The template keyword must be used before dependent template names.

gcc does not enforce this rule strictly, but clang does.