問題タブ [standard-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - MSDN - それは彼らですか、それとも私ですか?
ここでは、ヘッダーの type_traits が見つかりません。それが欠けているのか、それとも何かが欠けているのですか (再び...)。
c++ - C++でC標準ライブラリを実装する
OS/カーネルがC++を念頭に置いて作成されており、純粋なCスタイルのものを「実行」せず、代わりに本格的なC++標準ライブラリに基づいて構築されたC標準ライブラリを公開するとします。これは可能ですか?そうでない場合、なぜですか?
PS:Cライブラリが「C ++の一部」であることは知っていますが、内部的にはC++ベースの実装に基づいているとしましょう。
小さな更新:ここでの私のルールによって「許可」されるものについての議論をかき立てたようです。一般的に言えば、C標準ライブラリの実装では、可能な限りC++を使用する必要があります/ Right (tm)
。私は主に、アルゴリズムと、舞台裏で静的クラスオブジェクトを操作することについて考えています。私は実際には言語機能を除外しているわけではありませんが、代わりに、適切なC++実装に重点を置いています。setjmpの例に関しては、ここで有効なC(C ++ Cライブラリパーツに事前に実装されている他のライブラリパーツを使用するか、他のライブラリ関数をまったく使用しない)が私の「ルール」に違反する理由はわかりません。C ++ライブラリに対応するものがない場合、なぜそれの使用について議論するのですか。
c++ - C++ ライブラリの C 部分は自動的に C99 になりますか?
準拠 C++98/03/0x 実装のすべての関数は完全に C99 準拠ですか?
C++0x はいくつかの C99 ( language ) 機能を追加したと思っていましたが、C ライブラリ関数について決定的なことを聞いたり読んだりしたことはありません。
混乱を避けるために、ここでは<c*>
ヘッダー セットで宣言された関数を使用する C++ プログラムについて説明します。
ありがとう。
c++ - C++標準テンプレートライブラリのベクトルの質問
誰かがここで何が起こっているのかを英語で説明できますか?
c++ - 標準ライブラリ アロケータ ポインタ型の要件
四分木疎行列クラスを作成しようとしています。つまり、aquadtree_matrix<T>
はゼロ行列または の 4 倍(ne, nw, se, sw)
ですquadtree_matrix<T>
。
これはおそらく線形代数演算のパフォーマンスに影響を与えるため、最終的にはさまざまな割り当てスキームをテストしたいと思います。quadtree_matrix
したがって、既存のアロケーターを再利用できるように、標準のアロケーターの型もテンプレート化します。
2 つの異なる種類のデータを割り当てる必要があります: a T
、または a のいずれかで、 node
4 つのポインター (T またはノードへの) を含みます。私が検討するすべてのアルゴリズムについて、アルゴリズムの任意の時点で直面している部分行列のサイズが何であるかを知っているため、どのような種類のデータが期待されるかを確実に知っています (これらのサイズを保存する必要さえありません)。
もちろん、2 つの異なるアロケーターを使用します。アロケーターの型はテンプレートとテンプレートのコピー コンストラクターを提供するため(標準コンテナーのメンバーがコピーを返すことで提案するrebind
ように、値の型として使用することを意図しています)、これで問題ありません。get_allocator
問題は、アロケーター メンバー関数が特定のpointer
型を使用することです。これはバニラ ポインターである必要はありません。一部のアロケータ (ブースト インタープロセス アロケータ) は、この機能を広範に使用します。
アロケーター ポインターの型がさまざまなポインターである場合、問題はありません。少なくとも、ポインターを使用して void を指定し、それらを正しい型 ( または のいずれnode*
かT*
) に再解釈_キャストすることができます。ユニオンを使用することもできます(おそらくより良いでしょう)。
私の知る限り、allocator::pointer
型の PODness に関する要件はありません。これらは、ランダム アクセス イテレータである必要があるだけです。
さて、私の質問は次のとおりです。
アロケータ クラス テンプレートA<T>
(またはそれに相当するものA::rebind<T>::other
) が与えられた場合、次のことが保証されますか。
- 提供された静的キャストの機能
A<T>::pointer
は、 ?のアクセス可能なベースです。A<U>::pointer
U
T
- 提供された静的キャストの機能
A<T>::pointer
はアクセス可能なベースであり、キャストの「ランタイム型」(このコンテキストでこれが意味するものは何でも) は?A<U>::pointer
T
U
U
- タイプ
A<void>::pointer
(これが理にかなっている場合)?
それとも、私が考えもしなかった問題の解決策はありますか?
java - 準拠した Java 実装にすべての標準ライブラリが含まれていない可能性はありますか?
私は、JavaScript で JVM の実装を作成する作業を行っています。つまり、標準ライブラリのネイティブ コードをJavaScript で大量に作成しています。ただし、標準ライブラリには少数のプログラムでしか使用されない膨大な数のクラスがあり、ネイティブに実装されたネイティブ実装が必要な部分を取得しようとするのは面倒であり、あまりやりがいがありません。
有効な Java 実装にすべての標準ライブラリ クラスの実装が含まれているという要件は実際にありますか? それとも、コア Java ライブラリ (たとえば、java.lang.* とそれが参照するすべてのもの) を動作させてから、実装されていない機能を参照するコードに対して VerifyErrors をスローする可能性がある準拠の Java 実装があると主張することはできますか?
c - 「libc」という用語は「C標準ライブラリ」と同等ですか?
「libc」と「C標準ライブラリ」という用語を同じ意味で使用している人を時々耳にします。「libc」は、多くの一般的なC標準ライブラリ実装の名前(または名前の一部)であることを理解しています。私の推測では、これらの実装が広く使用されているため、正式な名前ではありませんが、一般にC標準ライブラリを「libc」と呼び始めました。
C標準ライブラリを「libc」と呼ぶのは正しいですか?
c++ - C ++stdライブラリの`at()`インデックス関数の実際のユースケース?
C ++のコンテナ、、vector
...deque
は、コンテナ要素へのアクセスat(index)
に加えて、アクセサ関数を提供します。operator[index]
このメンバー関数とメンバー演算子関数operator[]の違いは、deque :: atは、out_of_range例外をスローすることにより、要求された位置が範囲外であるかどうかを通知することです。
C ++コードでは範囲外の可能性のある要素にアクセスすることは意味がないため、コードでこの関数が必要になったことがありません。コードは常に正しいインデックスにアクセスするように記述されています(または、インデックスを一致させることができない場合に意味のあるエラー/例外を生成します)。
at()
本番コードで使用されている実際の例(おそらく、いくつかのコンテキストを追加するため、いくつかのオープンソースプロジェクトから)に興味があります。
at()
たぶん誰かが、使用が理にかなっているアルゴリズム問題の例をあげることができます。
注:最近、いくつかの単体テストコードで使用しました。ここでは、インデックスチェックコードを追加することは問題の価値があるとは見なされず、によってスローされるout_of_range例外at()
は、テストが失敗した場合に備えて十分なinfo+contextと見なされます。
注:ildjarnによるこの回答について-私はこれについて議論を始めたり、戦争についてコメントしたりしたくありません。私は「ポジティブ」な発見、つまりそれが使用された具体的な例に興味があります。ありがとうございました。
haskell - Haskell の標準ライブラリ型クラスの代替実装
標準ライブラリの型クラスのいくつかについて、「Monad には Functor が必要」、「Monad には Applicative が必要」、「Applicative には Pointed が必要」、「Num には Show が必要ない」などと不満を言う人をたくさん見てきました。など、いくつか質問があります。
型クラスの依存関係のツリーがコミュニティによって認識された「欠陥」を持っている方法についての議論はありますか、それともこれは単に物事が歴史的に行われた方法の結果ですか?
これを大幅に変更すると、既存のコードがどの程度壊れるでしょうか?
クラス依存関係の「正しい」セットを実装する基本型クラス (特にアロー、モナド、アプリカティブなど) の代替実装はありますか?