I totally understand people's complaints about C++. However I am never sure if they are aware of some libraries that may concerns:
boost::function allows you to easily interchange function pointers, memeber function pointers and function objects.
boost::lamda allows you to define transient functions at the call site. This makes the old STL way more useful. To be sure the syntax can be a bit funky...
boost::bind pulls all the fun of boost::lamda and boost::function together.
With only the tiniest bit of discipline boost::shared_ptr's mean you never have to worry about memory management again.
boost::any and QVariants (from the Qt Libraries) help you manage dynamic typing. So an array of boost::any's can hold int's, char's, string's and AnyTypeYouWant's all at the same time.
Everything I've mentioned is either in the standard or will be soon. Really undergrad C++ is only the beginning. The STL and boost are almost a language unto themseleves. I never use raw arrays or naked pointers anymore and it's made development WAY faster while maintaining performance.
PG asked, why use a language where adaptors have to be built to get the functionality of lisp rather than lisp itself (or something like that.) I see his point but if the effort of getting lisp to work with C/C++ based code is greater than the pain of using an LFM, why not make the best of an LFM?
Has anyone had the same experience? Or am I putting the "ass" in masses?
boost::function allows you to easily interchange function pointers, memeber function pointers and function objects.
boost::lamda allows you to define transient functions at the call site. This makes the old STL way more useful. To be sure the syntax can be a bit funky...
boost::bind pulls all the fun of boost::lamda and boost::function together.
With only the tiniest bit of discipline boost::shared_ptr's mean you never have to worry about memory management again.
boost::any and QVariants (from the Qt Libraries) help you manage dynamic typing. So an array of boost::any's can hold int's, char's, string's and AnyTypeYouWant's all at the same time.
Everything I've mentioned is either in the standard or will be soon. Really undergrad C++ is only the beginning. The STL and boost are almost a language unto themseleves. I never use raw arrays or naked pointers anymore and it's made development WAY faster while maintaining performance.
PG asked, why use a language where adaptors have to be built to get the functionality of lisp rather than lisp itself (or something like that.) I see his point but if the effort of getting lisp to work with C/C++ based code is greater than the pain of using an LFM, why not make the best of an LFM?
Has anyone had the same experience? Or am I putting the "ass" in masses?