問題タブ [function-signature]

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.

0 投票する
1 に答える
160 参照

php - 「関数($arg = 0)」と「関数($arg)」の違い

質問

PHPの公式ドキュメントで、次のような宣言をどこかで見つけました。

そしてこのように:

$options議論について、両者の違いは何ですか?

$options2番目のものは、引数が0に設定されていると確信しています(指定しない場合)。しかし、最初のもの?メソッドには2つの必須引数があると言っているのではありませんか? (では、角括弧は何のためですか?)。

私はこれをオーバーライドしようとしています:

( schemaValidate() PHP ドキュメントから貼り付けられたフィンガープリント)

しかし、2 番目の引数を宣言すると$flags

SchemaValidate() は DOMDocument::schemaValidate($filename) と互換性がある必要があります

$flagsすべての動作の宣言を削除すると( PHP 5.5.2未満 の場合のように)

PHP 5.5.9を実行し、 PHP 5.5.2からコンストラクター$flagsに導入されましたが、互換性の問題が発生するのはなぜですか?schemaValidate()

ネイティブ メソッドをオーバーライドしたい場合、PHP ドキュメントが信頼できるかどうか、または適切な関数フィンガープリントを別の場所で確認する必要があるかどうかがわかりません

ソースコードを見てみましたが、この関数は単なるC関数のエイリアスです。

0 投票する
2 に答える
202 参照

c++ - 部分的に特殊化された関数メンバーへのポインターでベクターを自動的に埋めます

パイプラインのようなデザイン パターンに取り組んでいます。私の設計目標の 1 つは、特定のデータ クラスの関数メンバーへのポインターを提供することにより、パイプライン セグメントの動的リンクを有効にすることです。

各データ クラスには、整数テンプレート引数を使用してインデックス付けされた一連の関数メンバー (データ クラスの出力ポートを表す) があります。これらの関数は、キーワードを使用して戻り値の型を動的に推測しますautoが、すべて同じ整数引数を受け入れc_Idxますtemplate <int N> auto getOutput(int c_Idx) const。各関数に関連付けられた機能getOutputは、部分的に特殊化された構造のセットで (ユーザーによって) 定義されますgetOutputImpl。したがって、各データ クラスは、1 から一定数Kまでの出力データ ポートを持つことができます。

一般的な方法でパイプライン セグメント間の動的リンクを可能にするために、タイプ のコンテナに格納できますstd::vector<boost::any>。ただし、このベクトルに関数メンバー テンプレートへのポインターを自動的に入力できるようにする必要があります。

手動実装の例を以下に示します

上記の例の問題点は、メンバー関数ポインターpOutFunXを手動で定義しているのに対し、この手順を自動化したいことです。

上記の設計と大きく異なる設計ソリューションは考慮していないことに注意してください。


ここでは、この問題を解決するためのいくつかの可能なアプローチについて、いくつかの考えを示します。現在検討中のソリューションの計画を作成しました。この質問に答えようとする場合に役立つ可能性があります。

  1. という名前のユーザー定義の部分的に特殊化された構造の数を取得しますgetOutputImpl
  2. そのような構造体ごとに、 という名前のメンバーの出力タイプを決定しますapply
  3. OutputPort関連する署名を持つ関数へのポインターを作成し、それらをベクトルに追加する (再帰的な) メタテンプレート プロシージャを設定します。

上記の手順 1 ~ 3 はすべてコンパイル時に実行する必要があると思います。データ出力クラスを設計するユーザーの介入が必要ない場合は、ソリューションの美学については気にしません。ただし、カスタム コンパイラ マクロは使用したくありません。

この投稿は、メンバー関数の署名を推測する方法を示しています。これは役立つ場合があります。

0 投票する
2 に答える
102 参照

c++ - これらの C++ ケースが異なるテンプレートをインスタンス化する理由

さまざまな関数を保存し、後でそれらの引数の型を抽出する必要がある機能を作成しようとしています。そのため、関数シグネチャをテンプレート パラメーターとして使用しています。しかし、やや予想外の結果が得られます。コードは次のとおりです。

したがって、変数someFooがタイプ の関数である場合void(void)、最初のテンプレート がインスタンス化されますfoo<T>。しかし、それを に変更するとvoid(int)、目的の特殊なテンプレートがインスタンス化されます。何故ですか?

0 投票する
1 に答える
855 参照

c++ - Template パラメーターとしての C++ 関数ポインター

以下のコード スニペットについて質問があります。コードを正しく理解しているかどうかわかりません。

  1. <R(*)(Args...)>は「関数ポインタの型」であり、R と (*) の間の点滅スペースは必ずしも必要ではありませんか?

  2. RunnableAdapter のインスタンス化とは何でしょうか? 以下のようなものだと思います。
    void myFunction(int i){ // }; RunnableAdfapter<(void)(*)(int)> ra(MyFunction); ra.Run(1); //which calls MyFunction(1)

0 投票する
3 に答える
2200 参照

python - Pythonタプルを関数シグネチャに配置する

Python には、関数シグネチャのタプルから値をパターン一致できる、興味深い非常に便利なツールがあります。

これの使用に関する文献は見当たりません。Python コミュニティがこれに使用する語彙は何ですか? これを使用しないやむを得ない理由はありますか?

0 投票する
2 に答える
3295 参照

python - cliからpythonの関数のすべての可能なkwargsを見つける方法はありますか?

コマンドラインからPythonの関数の潜在的なキーワード引数を発見する方法はありますか? ソースやドキュメントを見ずに。ソースが表示されていなくても lib を c にする場合があります