This encoding scheme was copied from the method encoding scheme of
the standard C++. So, how does the current C++ compiler deal with
A<1>? We can follow.
Regards,
Chiba
On 2005/ 2/2 , at 0:38, Stefan Seefeld wrote:
> [I sent this mail originally last summer (08/2004), but
> didn't get any response. Hoping that this time someone
> will listen I send it again.]
>
>
> hi there,
>
> while trying to enhance the Encoding API I'm looking
> at examples of encoded names I'll have to deal with.
> Doing that I find that
>
> ::A::B<A::Int, 2>::type
>
> maps to
>
> Q[4][0][1]AT[1]B[9]Q[2][1]A[3]Int*[4]type
>
> The point that worries me is the '*', which, according
> to the docs refers to a 'non-type template parameter'.
>
> That means types aren't represented unambiguously, as
> 'A<1>' will generate the same symbol as 'A<2>'. However,
> when doing symbol lookup, I obviously have to distinguish the
> two.
>
> Was that an oversight in OpenCxx ? Or was that deliberately
> left out as full symbol lookup wasn't done anyways ?
> Any ideas as to how to fix this ? Chiba ?
>
> Speaking of ambiguities in the Encoding class, I earlier
> this year reported the missing array dimensions, but didn't
> get feedback on this. Is there any interest into a fix ?
>
> Regards,
> Stefan
|