TR1 によって C++11 に導入された新しい関数の多くは、醜い C ライクなシグネチャを持っています。たとえば、Boost の TR1 のドキュメント ( http://www.boost.org/doc/libs/1_52_0/doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.special )を引用します。
// [5.2.1.1] associated Laguerre polynomials:
double assoc_laguerre(unsigned n, unsigned m, double x);
float assoc_laguerref(unsigned n, unsigned m, float x);
long double assoc_laguerrel(unsigned n, unsigned m, long double x);
明らかに、いくつかのテンプレート化された実装 (実際には、Boost のこれらの関数の "ネイティブ" シグネチャです)、または複数の識別子の代わりに少なくともいくつかのオーバーロードを好むでしょう。
C との互換性を目指すということは、これらの識別子をサポートすることを意味することは理解できますが、これは純粋な C++ スピーカーにとって厄介なことです。に加えて、より自然なインターフェイスを備えた<cmath>
がいくつか存在する可能性があります。<math>
私が見逃しているのは何ですか (さらに、おそらく以前に尋ねられた質問のいくつか)