 <p>From C++03, 14.2.4</p> <blockquote> <p>When the name of a member template specialization appears after <code>.</code> or <code>-&gt;</code> in a <em>postfix-expression</em>, or after <em>nested-name-specifier</em> in a <em>qualified-id</em>, and the postfix-expression or qualified-id explicitly depends on a template-parameter (14.6.2), the member template name must be prefixed by the keyword template.</p> </blockquote> <p>In your example, <code>rcss::conf::Builder</code> does not depend explicitly on a template-parameter, which makes the <code>template</code> keyword useless (VC allows it).</p>