[aspectc-user] Aspect C++ and Symbian
Olaf Spinczyk
Olaf.Spinczyk at informatik.uni-erlangen.de
Mon Sep 19 15:36:01 CEST 2005
Hi,
in your code example ac++ complains about the expression
&NAbortHandler(), because NAbortHandler() is a construct expression,
which does not yield an 'L-Value'. Therefore, (according the the C++
standard) you should not take the address of it.
Normal g++ compiler issue a warning: "taking address of temporary"
ac++ reacts with an error. As a first step to improve the situation we
will also issue a warning instead of an error in future versions.
-Olaf
Marti Bayo-alemany wrote:
> Hi all,
> I want to point out two things.
> I am actually using whole program transformation to deal with the
> symbian project (WPT).
> The reason is the dificulty to integrate ac++ into the makefiles from
> the build process of symbian.
> I know that WPT is deprecated and I guess that is because it needs a
> huge amount of memory to process the project. On my case more than 500
> Mb. However my computer has enough memory so I keep on it first.
>
> The second thing is a bug of Aspect C++. Something which is actually not
> working good with ac++
>
> C:/MySource/MobileNeroDigital/neroplayer/nero_gui/Symbian/AspectC/src-ah-in/NEventManager.cpp:141:
> error: invalid operand to unary `&'
> The offending line is ...
> m_ITrackInfoCache->FlushSetInfoQueue(&NAbortHandler());
>
> Which is defined as ...
> virtual void FlushSetInfoQueue(NeroBase::IAbortHandler * p_abort) = 0;
>
> where NAbortHandler is ...
> class NAbortHandler : public NeroBase::IAbortHandler
>
> The solution was to change that...
>
> m_ITrackInfoCache->FlushSetInfoQueue(&NAbortHandler());
>
> ...for that ...
> NAbortHandler l_AbortHandler;
> m_ITrackInfoCache->FlushSetInfoQueue(&l_AbortHandler);
>
> Hope that helps.
> Best wishes,
> Marti
>
> ----- Original Message ----- From: "Marti Bayo-alemany" <malemany at nero.com>
> To: "Olaf Spinczyk" <Olaf.Spinczyk at informatik.uni-erlangen.de>
> Cc: <aspectc-user at aspectc.org>
> Sent: Monday, September 12, 2005 9:52 AM
> Subject: Re: [aspectc-user] Re: Aspect C++ and Symbian Error
>
>
>> Hi,
>>
>> I have found the same definition on the stdlib headers of MSVC6 and
>> MSCV7, they are probably also cutting the Gordian knot.
>> The solution is to keep two different headers one to compile the
>> program and one for the transformation with ac++.
>> Just a stdlib with a commented typedef for ac++ and a stdlib for
>> compilation. The typedef is really needed for compilation.
>>
>> best wishes,
>> Marti
>>
>> ----- Original Message ----- From: "Olaf Spinczyk"
>> <Olaf.Spinczyk at informatik.uni-erlangen.de>
>> To: "Marti Bayo-alemany" <malemany at nero.com>
>> Cc: <aspectc-user at aspectc.org>
>> Sent: Friday, September 09, 2005 10:00 AM
>> Subject: Re: [aspectc-user] Re: Aspect C++ and Symbian Error
>>
>>
>>> Hi again,
>>>
>>> I haven't found an email with a solution :-(. However, I looked into
>>> an old version of this Symbian header file. There I found the typedef
>>> and an interesting comment by the Symbian developers..
>>>
>>> /* There seems to be a lot of nonsense about _need_wchar_t etc., but for
>>> * STDLIB we have cut the Gordian knot and done the simple thing
>>> */
>>>
>>> In my opinion, cutting the Gordian knot was not a good idea ;-) as in
>>> C++ normally wchar_t is a keyword.
>>>
>>> BTW, g++ 3.3 also reports the typedef as an error:
>>>
>>> limits.c:5: error: redeclaration of C++ built-in type `wchar_t'
>>>
>>> As a workaround you can either modify this file (remove the typedef)
>>> or create a modified copy that is locate in a directory, which is
>>> searched first by ac++.
>>>
>>> Maybe a macro would also help:
>>>
>>> #define wchar_t symbian_wchar_t
>>>
>>> (no guarantee)
>>>
>>> Regarding ac++ we'll have to find out which compiler versions
>>> tolerate such a typedef and if we can integrate this behavior, e.g.
>>> in the g++-2.95 mode.
>>>
>>> -Olaf
>>>
>>>
>>> Olaf Spinczyk wrote:
>>>> Hi,
>>>>
>>>> the problem is that this peace of code is not standard compliant.
>>>> wchar_t is a keyword in C++. Therefore, this typedef is similar to
>>>> something like
>>>>
>>>> typedef int long;
>>>>
>>>> which also makes no sense.
>>>>
>>>> I remember that we have already had this problem in the symbian
>>>> header files some time ago. I'll search my emails and post the
>>>> solution as soon as possible.
>>>>
>>>> Could you meanwhile check if there is an #ifdef around this typedef?
>>>> Something like #ifdef __HAVE_BUILTIN_WCHAR_T.
>>>>
>>>> Best regards,
>>>>
>>>> Olaf
>>>>
>>>>
>>>> Marti Bayo-alemany wrote:
>>>>> Hi All,
>>>>> You should have all the same problem with the stddef.h headers for
>>>>> MSVC6, MSVC7.
>>>>> best wishes,
>>>>> Marti
>>>>>
>>>>> ----- Original Message -----
>>>>> *From:* Marti Bayo-alemany <mailto:malemany at nero.com>
>>>>> *To:* aspectc-user at aspectc.org <mailto:aspectc-user at aspectc.org>
>>>>> *Sent:* Thursday, September 08, 2005 7:12 PM
>>>>> *Subject:* Aspect C++ and Symbian Error
>>>>>
>>>>> Hi all,
>>>>> I get the following error from ac++ when trying to compile
>>>>> with stddef
>>>>> C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stddef.h:13:
>>>>> error:
>>>>> `signed' or `unsigned' invalid for given type The
>>>>> offending line of code is ...
>>>>> typedef unsigned short int wchar_t;
>>>>> any idea how to work around that ?
>>>>> best wishes,
>>>>> Marti
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> aspectc-user mailing list
>>>>> aspectc-user at aspectc.org
>>>>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>>>
>>>> _______________________________________________
>>>> aspectc-user mailing list
>>>> aspectc-user at aspectc.org
>>>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>>
>>>
>>>
>>
>> _______________________________________________
>> aspectc-user mailing list
>> aspectc-user at aspectc.org
>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>
>>
>
> _______________________________________________
> aspectc-user mailing list
> aspectc-user at aspectc.org
> http://www.aspectc.org/mailman/listinfo/aspectc-user
More information about the aspectc-user
mailing list