時間の経過とともに、STL* のさまざまな代替実装 (STLPort など) が登場しました。特定の大企業も、さまざまな目的で STL の独自の内部ポートを使用しています。
C++03 では、移植可能な C++ 言語機能のみを使用して STL の移植版を作成することができます。つまり、適合するコンパイラはそれをコンパイルできるはずです。
しかし、C++11 では、コンパイラのサポートが必要な特定の機能はありませんか?
たとえば、std::is_standard_layout
C++ 言語機能だけを使用して実装する方法がわかりません。ベースポインタと派生ポインタを使用してstd::is_base_of
、の観点から実装できると思います。しかし、どのように実装std::is_convertible
できるか想像できません。std::is_standard_layout
私には思い浮かばなかった他の機能もあるかもしれません。
それで、私はここで正しいですか?C++ 言語機能のみを使用して C++11 で標準ライブラリの完全なポートを作成することは不可能ですか?
*STL と「C++ 標準ライブラリ」は厳密には互換性がないことは知っていますが、この場合は明らかに C++ 標準ライブラリを意味します。