Linked by MOS6510 on Thu 10th Jan 2013 23:25 UTC
General Development "For years I've tried my damnedest to get away from C. Too simple, too many details to manage, too old and crufty, too low level. I've had intense and torrid love affairs with Java, C++, and Erlang. I've built things I'm proud of with all of them, and yet each has broken my heart. They've made promises they couldn't keep, created cultures that focus on the wrong things, and made devastating tradeoffs that eventually make you suffer painfully. And I keep crawling back to C."
Thread beginning with comment 548500
To view parent comment, click here.
To read all comments associated with this story, please click here.
ebasconp
Member since:
2006-05-09

Not at all.

1. I replaced the classical "for loop" for the range based for loop, that hides complexity and improves reading a lot.

2. I used shared_ptr<Object> instead of Object*, so I do not need to iterate through all the vector elements to release them; the shared_ptr does the job.

3. Since the shared_ptr<Object> is a value type (storing a pointer), if an exception occurs, the vector will invoke the Object destructors automatically, making my code exception-safe.

All of that and my code is smaller ;)

Reply Parent Score: 3

tylerdurden Member since:
2009-03-17

Am I missing something? Why didn't you use the range for look in the original code as well, to compare apples to apples.

Reply Parent Score: 2

ebasconp Member since:
2006-05-09

What you are missing is that the range-based for loop appeared in the C++11 standard.

Reply Parent Score: 3

Delgarde Member since:
2008-08-19

Am I missing something? Why didn't you use the range for look in the original code as well, to compare apples to apples.


You're missing that this is comparing the old and new versions of the C++ standard. He doesn't use the simplified syntax is the "original code" because that's not possible - demonstrating the difference in syntax was the entire purpose of the post.

Reply Parent Score: 2