<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Yes Joachim, these are good examples. Thanks. :)<br><br>--- On <b>Mon, 5/9/11, Joachim Faulhaber <i><afojgo@googlemail.com></i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Joachim Faulhaber <afojgo@googlemail.com><br>Subject: Re: [Boost-users] Metaprogramming + Multiple Inheritance?<br>To: boost-users@lists.boost.org<br>Date: Monday, 5 September, 2011, 20:29<br><br><div class="plainMail">2011/9/5 Dave Abrahams <<a ymailto="mailto:dave@boostpro.com" href="/mc/compose?to=dave@boostpro.com">dave@boostpro.com</a>>:<br>><br>> on Sun Sep 04 2011, Hossein Haeri <powerprogman-AT-yahoo.com> wrote:<br>><br>>> Hi Dave,<br>>> There is a fine line between Generic Programming in general and<br>>> metaprogramming. My personal feeling is that Andrei's works -- and PBD<br>>> in general -- are good instances for Generic Programming. Yet, I don't<br>>> seem to register them per se as metaprogramming. I understand that<br>>> this might be a very personal viewpoint. I say this because I had a<br>>> try and couldn't quite put my reasons into words.<br>><br>> Andrei isn't focusing on metaprogramming (nor on generic programming as<br>> I understand the term); but he is _applying_ metaprogramming techniques<br>> to classic OO design patterns (such as visitor). As such that makes a<br>> very good example of what you're asking about.<br><br>Another brilliant combination of metaprogramming and multiple<br>inheritance is Andrei's example on generating classes and class<br>hierarchies from typelists [1](pp. 64-76). This technique is not only<br>a nifty way of using metaprogramming. I also found it very useful for<br>defining a polymorphic tuple class template. I used this approach to<br>implement an axiom based test machine [2], where the tuple of free<br>variables (of arbitrary types) that occur in an axiom are implemented<br>using Andrei's typelist generated class approach.<br><a href="https://svn.boost.org/svn/boost/sandbox/icl/boost/validate/loki_xt/Tuple.h" target="_blank">https://svn.boost.org/svn/boost/sandbox/icl/boost/validate/loki_xt/Tuple.h</a><br><br>Cheers,<br>Joachim<br><br>[1] Alexandrescu, Andrei: Modern C++ Design. Addison-Wesley, 2001.<br>[2] Joachim Faulhaber: Boost.Alabaster. A Law Based Tester, BoostCon 2010.<br><a href="https://svn.boost.org/svn/boost/sandbox/icl/libs/validate/doc/boostcon2010/BoostAlabaster.pdf" target="_blank">https://svn.boost.org/svn/boost/sandbox/icl/libs/validate/doc/boostcon2010/BoostAlabaster.pdf</a><br><br>-- <br>Interval Container Library [Boost.Icl]<br><a href="http://www.joachim-faulhaber.de" target="_blank">http://www.joachim-faulhaber.de</a><br>_______________________________________________<br>Boost-users mailing list<br><a ymailto="mailto:Boost-users@lists.boost.org" href="/mc/compose?to=Boost-users@lists.boost.org">Boost-users@lists.boost.org</a><br><a href="http://lists.boost.org/mailman/listinfo.cgi/boost-users" target="_blank">http://lists.boost.org/mailman/listinfo.cgi/boost-users</a><br></div></blockquote></td></tr></table>