From: Shigeru C. <ch...@is...> - 2005-02-01 16:16:26
|
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 |