これを name mangling というんだが、name mangling の方法はコンパイラによって バラバラで標準がない。そこで C や VB などから C++ 関数を呼び出す場合には extern "C" を使って「この関数は name mangling するな」と指定する。副作用と して関数オーバーロードができなくなる。
>>607 14.2 A template-declaration can appear only as a namespace scope or class scope declaration. In a function template declaration, the declarator-id shall be a template-name (i.e., not a template-id).
>>607 スマソこっちみたい。 14.5 A class template shall not have the same name as any other template, class, function, object, enumeration, enumerator, namespace, or type in the same scope (basic.scope), except as specified in (temp.class.spec). Except that a function template can be overloaded either by (non-template) functions with the same name or by other function templates with the same name (temp.over), a template name declared in namespace scope or in class scope shall be unique in that scope.