C++ as a federation of several different languages

少し前のcomp.lang.c++.moderatedより.もともとのtopicは(いつものw)多重継承の是非についてですが,若干その文脈から外れたところで以下のような意見が.

原文

Re: *OBJECTIVE* reason to not use MI?
 by Scott Meyers  Mar 8, 2004 at 03:11 PM

[snip]
I have come to view C++ as a federation of several different languages:

  C
  OO C++
  STL
  TMP

Unfortunately for people like me who struggle to identify broadly
applicable guidelines for specific design and programming practices, it's
becoming harder and harder to come up with advice for "C++ programming"
that spans all these sublanguages.  For example, the use of public
inheritance in OO C++ needs to hew to different rules than the use of
public inheritance in STL or TMP.  IME, most people using C++ focus on the
OO parts, with occasional forays into the C and STL parts.  Only the truly
hardcore venture into TMP, though the amount of attention it gets in the
newsgroups and press might lead one to think that its becoming mainstream.
At any rate, people doing TMP don't need my help :-)
[snip]

どうでも良いですがTemplate Meta-ProgrammingってTMPと略すのかな?って思っていたら本当にそう略してますねw.
それにしてもC++って本当にでかすぎるんですよねぇ.各パートはdifferent languagesだとまで言われている始末w.でもって「C++プログラミング」という言葉はその異なる言語wの全てを含み,さらにはその各々のsub partの文脈でclassや継承などの言語機能の使われ方が異なっていると.なるほど.確かに,これは端から見ると混乱しないほうがおかしいと思えますねw.
Exceptional C++のItem 2とかがそういうものの例ですかね.char_traitsのようなクラスはOOで言うところのクラスと違ってpolymorphicに扱うことはない(あるいはまれ)だ,とかそこら辺ですか.
ところで,MC++Dのforewordとかでも窺い知ることができるのですが,Scott MeyersってTMPについて語りたがろうとしませんね.彼のTMPに対する考えを聞いてみたい気もするのですが.