This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR libstdc++/13045 / C++ demangler, floating values and function pointer type return type postfix fix.


Gabriel Dos Reis <gdr@integrable-solutions.net> writes:

| The general problem comes from an obscure section in the "template
| chapter" (14.5.5.1/7) that says that 
| 
|    If a program contains declarations of function templates that are
|    functionally equivalent but not equivalent, the program is
|    ill-formed; no diagnostic is required.

Just to add a clarification on what that obscure paragraph is about.

"Functional equivalence" is equivalence when comparing normal forms.
Plain "equivalence" is token-for-token equivalence modulo renaming of
template parameters, aka "alpha conversion".

In 14.5.5.1/7, the two notions are applied when considering
expressions in function template signatures.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]