From: Warren Young Date: October 31 2008 6:05pm Subject: Re: InsertPolicy and Transactions List-Archive: http://lists.mysql.com/plusplus/8114 Message-Id: <490B48DC.6020105@etr-usa.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Rick Gutleber wrote: > > Templates are definitely still not instinctive for me... > especially the idea of "faking" inheritance of an abstract interface. You can find traits used throughout the Standard C++ Library, Boost, etc. Most of the time, you ignore them, because the defaults work for most things. If you study the declarations, though, you'll find them: custom allocators for containers, etc. But really, all of this template jiggery-pokery just just a way to approximate, in a statically-typed language, the SOP in languages like JavaScript, Smalltalk, or Objective C. If you haven't written something significant in one of those, I highly recommend it; it will change the way you think about programming. I particularly recommend Douglas Crockford's _JavaScript: The Good Parts_. If you think you know JavaScript already but haven't read Crockford, you've probably just been speaking pidgin JS. JS is probably the most widely-deployed language now: most browsers, most of the professional Adobe apps, Flash, various server-side implementations... All we're missing is wide deployment of it as a command-line interpreter, a la Perl. > It feels like cheating from an OO point of view, It's just a different kind of OO. Alan Kay, co-creator of Smalltalk, famously said, "I made up the term 'object-oriented', and I can tell you I did not have C++ in mind." That's not [just] a swipe at C++. It reflects the fact that the two languages have an entirely different approach to OO. Both have their merits, and their demerits. > Query& insertfrom(const std::vector& con, Hmmmm, misgivings I have, yes! I don't like tying insertfrom() to vector. It might be better to pass two generic iterators, a la Query::insert(iter, iter). Then you could insertfrom a std::set, for instance. > ...the C++0x scene (how long until it's called "C++1x"?) My view is, even if it does come out next year, it's as good as C++1x to me. I still have to build MySQL++ for CentOS 3, and will for the foreseeable future. I'll be lucky to start using new C++ constructs in production code before the twenty-teens. > I realized how > radically they are changing, well really adding to, the language. I'm looking forward more to the small things: - auto var = myVectorOfWhatever.begin() - closures, so I never have to write another damned functor - several new types of smart pointers - hash-based containers Yes, we can have the latter two today with add-on libraries, but it'll make me far happier to have them in the language.