問題タブ [generic-programming]
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.
java - ジェネリックペアクラス
過去の試験問題で見つけたこの質問を試してみて、次のJava試験の準備をします。
物事のペアを表すためのジェネリッククラスPairを提供します。クラスは、コンストラクター、ペアの最初のメンバーを取得するためのメソッド、ペアの2番目のメンバーを取得するためのメソッド、ペアの最初のメンバーを設定するためのメソッド、ペアの2番目のメンバーを設定するためのメソッドを提供する必要があります。クラスは、ペアの最初のメンバー用と2番目のメンバー用の2つのタイプでパラメーター化する必要があります。
これはこの質問の正しい実装ですか?
c++ - ジェネリック/テンプレートプログラミングのベストプラクティス:型を制限する、または型を制限しない
それが私の質問です。ジェネリック関数またはクラスに渡すことができる型を制限することについてのコンセンサスが何であるかを知りたいだけです。ある時点で読んだことがあると思います。ジェネリックプログラミングをしている場合は、閉じようとするのではなく、開いたままにしておく方が一般的です(ソースを思い出さないでください)。
私はいくつかの内部ジェネリック関数を持つライブラリを書いていますが、ライブラリ内の型のみを使用できるようにする必要があると感じています。それが、それらを使用するための意味だからです。一方で、物事を封じ込める努力がそれだけの価値があるかどうかはわかりません。
誰かがこのトピックに関する統計や権威ある解説の情報源を持っているかもしれませんか?健全な意見にも興味があります。うまくいけば、それはこの質問を完全に無効にするものではありません:\
また、ここで「ベストプラクティス」に相当するタグはありますか?私はそれを具体的には見ませんでしたが、特定のSOトピックのすべてのベストプラクティス情報を提示できると便利なようです...多分そうではなく、単なる考えです。
編集:これまでのところ、私が行っているライブラリの種類は重要であると述べた回答が1つあります。これは、STLコンテナ、可変個引数(タプル)、Boost Fusionなど、その性質のものを処理するデータベースライブラリです。それがどのように関連するかはわかりますが、どちらに進むかを決定するための経験則にも興味があります。
c++ - C++ で qsort が機能しないのはどのような種類の型ですか?
std::sort
を使用して要素を交換します。これによりstd::swap
、コピー コンストラクターと代入演算子が使用され、値を交換するときに正しいセマンティクスが得られることが保証されます。
qsort
スワップする型に関連付けられたセマンティクスを無視して、要素の基になるビットを単純にスワップすることによって要素をスワップします。
qsort
ソートしている型のセマンティクスを知らなくても、自明でない型では非常にうまく機能します。私が間違っていなければ、POD タイプではないにもかかわらず、すべての標準コンテナーで動作します。
qsort
型で正しく動作するための前提条件T
は、T
/自明に可動/であることだと思います。頭のてっぺんから離れて、自明に移動できない唯一の型は、内部ポインターを持つ型です。例えば:
の配列をソートするとNotTriviallyMovable
、m_someElement
s は間違った要素を指すことになります。
私の質問は次のとおりです。他の種類のタイプでは機能しませんqsort
か?
c# - ジェネリックを使用する
私は次のようなクラスを持っています:
名前を持つ別のクラスを作成したいだけです: myName.cs myName.cs 内で、上記の AddName メソッドを呼び出します。あなたはそれをすることを知っていますか?
前もって感謝します
c++ - 各種類のオブジェクトを1つ受け取るコンテナを作成するにはどうすればよいですか?
オブジェクトにアタッチできる可能性のあるメタデータのコンテナーを作成しようとしました。クラスにアタッチされるオブジェクトの種類ごとに最大で1つのオブジェクトが存在することを保証できますが、異なるタイプのオブジェクトをアタッチすることに制限はありません。たとえば、の2つのインスタンスをwordInfo
オブジェクトにアタッチすることはできませんが、のインスタンスwordInfo
とphraseInfo
クラスを同時にオブジェクトにアタッチすることはできます。これが私がそれを成し遂げるためにこれまでにしたことです。
上記のコードでコンパイルエラーが発生しました。less演算子が定義されていないためstd::type_info
、lessクラスを特別に定義std::type_info
し、次のようにマップクラスの3番目のテンプレートパラメーターとして渡します。
しかし、解決方法がわからない別のエラーが発生しました。std::type_info
プライベートコンストラクター、さらにはプライベートコピーコンストラクターがあるため、そこからクラスを派生させることさえできません。どうすればこの問題を解決できますか?または私のobject
クラスを作成する他の可能な方法はありますか?
c++ - ネストされた名前指定子
私は次のようなコードを持っています:
MSVCで正常にコンパイル(および動作)しますが、gccは無効な構文について不平を言っています:
私が間違っているのは何ですか?
visual-studio-2010 - 関数宣言の static_assert
を使用した非常に単純な関数がありますstatic_assert
。static_assert
問題は、関数宣言に関連する動作、特に戻り値の型を推測したいことです。コンパイラが戻り値の型の推定に失敗する前static_assert
に起動できるように、を挿入する場所がないようです。
ここまでは戻り値の型推定と静的アサーションを構造体に入れました。これにより、アサーションが起動されます。これは素晴らしいことですが、型推論でエラーが発生します。これは、私が除去したいノイズです。
c++ - 述語として使用される再帰的ジェネリック関数、コンパイルの失敗
2 つのリストの内容を比較する関数を作成しています。要素の順序は関係ないので、比較する前に並べ替えます。リストは、通常のタイプlist<int>
にすることも、リストのリストにすることもできますlist<list<int> >
。
完全に簡略化された例を次に示します。
これは GCC 4.3.3 でコンパイルされますが、Visual Studio 2008 では、呼び出している場所で次のコンパイル エラーが発生しますlhs.sort()
。
助言がありますか?
haskell - Haskell の Data.Typeable とは?
Haskell のData.Typeable
.
どのような問題をどのように解決しますか?
javascript - Javascriptでサポートされていないパラメトリックポリモーフィズム(ジェネリックプログラミング)?
Javascript でのジェネリック プログラミングに関する情報が見つかりません。したがって、サポートされていないと思います。本当ですか?近いものはありますか?
パラメトリック ポリモーフィズム http://en.wikipedia.org/wiki/Parametric_polymorphism