Re: C coding
Marc Hunter <marc-G5HfMHItY0AlJZD/[email protected]>
| Newsgroups | gmane.comp.lang.as400.c |
|---|---|
| Message-ID | <[email protected]> |
While I empathize, and certainly C++ also allows you to shoot yourself in the foot, the code shown is philosophically (imo) a mix of C and C++ in that it uses char *s. Assuming both variables are strings then I would code it as follows and avoid dipping into 'dangerous' char * territory. partName.insert(0, userName.substr(start, len)); (If I'm understanding the objective correctly) Marc On 2/13/2014 9:02 AM, Tim Bronski wrote: > On 2/13/2014 5:23 PM, Jon Paris wrote: >> I would have said that C was brilliant if your aim was to shoot yourself in the foot and C++ does a better job of protecting you. > Hi Jon, I would have let that slide but I've just finished tracking down > a bug where c++ was using a different overloaded string function than > the one intended. Here's what the statement should have been: > partName.insert(0, &userName[start], len); > but instead it was > partName.insert(0, userName[start], len); > > This compiles fine but the result was heinous...the c compiler would > have caught that one. -- This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected] To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/c400-l or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected] Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.