Seeking official definitive situation regarding Brew MP and C++ | developer.brewmp.com Seeking official definitive situation regarding Brew MP and C++ | developer.brewmp.com

Developer

Seeking official definitive situation regarding Brew MP and C++

Forums:

Hi

 

I'm trying to find out 100% exactly what is and isn't possible regarding developing using C++ with Brew MP.

 

If I search for C++ in this forum I get hits which are 6 or 7 years old, and reading these and googling gives contradictory answers - for example some posts claim new, stl, exceptions, virtual functions, static member data... are not supported, while other posts contradict this.

 

To add to the confusion the description of this forum is: "Forum for BREW MP development in C programming language. C++ is also supported in limited usage." - Does that mean C++ has limited usage in Brew MP, or the forum gives limited discussional usage to C++? If its the former then where is an official/definitive document stating what the limitations or complications are of using C++?

 

TIA

P.S.

Are there any books on Brew MP, anything I find on Amazon is several years old.

.

.

I also agree with you guys. No Tech Guide on BREW MP and C++ is available. If its not supported properly, it should be made clear.

I also agree with you guys. No Tech Guide on BREW MP and C++ is available. If its not supported properly, it should be made clear.

While we wait to hopefully get some official definitive answers, perhaps in the meanwhile people could post their experiences of using C++ in Brew MP here. What have you tried that has/hasn't been possible with C++?
 
P.S.
I don't suppose there's any chance of being able to use the boost or TR1 libraries with BMP, sounds like it'd be being too optimistic?

While we wait to hopefully get some official definitive answers, perhaps in the meanwhile people could post their experiences of using C++ in Brew MP here. What have you tried that has/hasn't been possible with C++?
 
P.S.
I don't suppose there's any chance of being able to use the boost or TR1 libraries with BMP, sounds like it'd be being too optimistic?

Good news:  I have been able to use STL (and Boost) under the simulation environment
Bad news:  Primarily due to lack of exception support I have been unable to get either working on the ARM target device.

Good news:  I have been able to use STL (and Boost) under the simulation environment
Bad news:  Primarily due to lack of exception support I have been unable to get either working on the ARM target device.

I cannot give you the 'official' word, just my experience using c++ with gcc:
I've been using C++ with Brew since 2002.  new and delete and new[] and delete[]
need to be overloaded to use MALLOC and FREE (the helper functions brew provided
for memory management).  Virtual functions work fine.  You must extern "C" the
BREW header files.  I was not able to get exceptions to work so I did not use them. 
I did not attempt to use any 3rd party c++ libraries fearing code bloat.
 
It is my understanding a more official statement with be forthcoming.
 
 

I cannot give you the 'official' word, just my experience using c++ with gcc:
I've been using C++ with Brew since 2002.  new and delete and new[] and delete[]
need to be overloaded to use MALLOC and FREE (the helper functions brew provided
for memory management).  Virtual functions work fine.  You must extern "C" the
BREW header files.  I was not able to get exceptions to work so I did not use them. 
I did not attempt to use any 3rd party c++ libraries fearing code bloat.
 
It is my understanding a more official statement with be forthcoming.
 
 

Hello
Any luck with templates anyone?
 
(Does the STL not work with ARM due just to exceptions, or additionally due to templates)

Hello
Any luck with templates anyone?
 
(Does the STL not work with ARM due just to exceptions, or additionally due to templates)

There are large sections of the STL that would need serious rethinking to ever work on the BREW platform, mostly due to a lack of POSIX-like file I/O semantics.  The containers should work fine if exception support can be provided (I've used STL extensively on other ARM platforms).
 
If you're writing new C++ code without external references to existing libraries and you "play by the rules" of the BREW MP environment, you should be able to use templates fine in your own code.
 
Understandably, a large portion of BREW developers aren't interested in large scale development but there is an emerging class of applications (particularly in the M2M arena) which might be interested in deeply embedding BREW-based devices where the typical resource constraints might not apply.
 
I believe Qualcomm is well aware of these emerging markets and perhaps we will see some enhancements soon that can help developers with implementing larger-scale applications.

There are large sections of the STL that would need serious rethinking to ever work on the BREW platform, mostly due to a lack of POSIX-like file I/O semantics.  The containers should work fine if exception support can be provided (I've used STL extensively on other ARM platforms).
 
If you're writing new C++ code without external references to existing libraries and you "play by the rules" of the BREW MP environment, you should be able to use templates fine in your own code.
 
Understandably, a large portion of BREW developers aren't interested in large scale development but there is an emerging class of applications (particularly in the M2M arena) which might be interested in deeply embedding BREW-based devices where the typical resource constraints might not apply.
 
I believe Qualcomm is well aware of these emerging markets and perhaps we will see some enhancements soon that can help developers with implementing larger-scale applications.

Qualcomm - it would be good if you commented on this.

Qualcomm - it would be good if you commented on this.

Does anybody know if the issue relating to non POD globals/statics mentioned in this link is still the case (posting is from 2006)
 
https://developer.brewmp.com/forum/using-static-variables-classes-0

Does anybody know if the issue relating to non POD globals/statics mentioned in this link is still the case (posting is from 2006)
 
https://developer.brewmp.com/forum/using-static-variables-classes-0

I have successfully used c++ templates and virtual functions with both the RVCT and GNU C++ compilers.  Static variables are usable, but generally should be avoided.

I have successfully used c++ templates and virtual functions with both the RVCT and GNU C++ compilers.  Static variables are usable, but generally should be avoided.

I have successfully used c++ templates and virtual functions with both the RVCT and GNU C++ compilers.  Static variables are usable, but generally should be avoided.

I have successfully used c++ templates and virtual functions with both the RVCT and GNU C++ compilers.  Static variables are usable, but generally should be avoided.

Why should static variables be avoided if they are useable?
 
Thanks

Why should static variables be avoided if they are useable?
 
Thanks

According to this file:///C:/Documents%20and%20Settings/Martin/Desktop/BREW/Use%20of%20C++/ARM%20Information%20Center.webarchive
 
The ARM compiler supports C++ exceptions.
 
When can/should/must one compiler be used over another, why can't the ARM compiler always be used as it seems to support everything in C++?

According to this file:///C:/Documents%20and%20Settings/Martin/Desktop/BREW/Use%20of%20C++/ARM%20Information%20Center.webarchive
 
The ARM compiler supports C++ exceptions.
 
When can/should/must one compiler be used over another, why can't the ARM compiler always be used as it seems to support everything in C++?

Its coming up to 3 months since this was posted.
What's happened to the official response/documentation that was supposed to be coming?

Its coming up to 3 months since this was posted.
What's happened to the official response/documentation that was supposed to be coming?