12
  1. 準拠するC++標準ライブラリの実装をC++で実装する必要がありますか?
  2. そうでない場合、純粋なC ++と標準ライブラリおよび実装で定義された動作では実行できない魔法のことを実行できますか?

  • 拡張機能に依存する並列実装があることは知っていますが(少なくともC ++ 11より前では)、それらは本当に準拠していますか?
  • 標準に要件が見つかりませんでしたが、おそらく私の標準fuは今日弱いです
4

3 に答える 3

19

標準C++ライブラリ(またはそれに関しては標準Cライブラリ)をどのように実装するかについての要件はまったくありません。ライブラリが達成する必要があるのは、文書化され指定されたインターフェースを実装することだけです。これがどのように行われるかは、完全に実装次第です。標準ライブラリの一部は、コンパイラによって何らかの魔法の方法で実装されることが多く、C ++ 2011には、標準のC++2011言語機能を使用して実際に実装できないインターフェイスがいくつかあります。主にこれはのいくつかの特性に当てはまりますが、<type_traits>他のこともあります。

参考までに、C ++の実装方法と、標準に準拠することの実際の意味は非常にあいまいです。関連する条項は1.4[intro.compliance]です。ただし、発行されている診断とプログラムが実行する必要があること、リソース制限への制約について説明しているだけです。

于 2012-02-06T16:38:57.027 に答える
9

いいえ。

実際には、#include <map>たとえば、事前に保存されたASTをインポートするだけで、ファイルをまったく参照しないことが標準で規定されています。

于 2012-02-06T16:39:57.277 に答える
2

まったくそうではありません。インターフェイスのみがC++である必要があります。

于 2012-02-06T16:38:16.660 に答える