問題タブ [default-arguments]

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 に答える
51 参照

c++ - オーバーロード選択中に考慮されないデフォルト引数の変換?

私はこの質問に対する簡単な解決策を書こうとしていました:ポインターへの配列の減衰とオーバーロードの解決

明らかにオリジナルでは、両方のオーバーロードの変換強度が等しい (完全一致) ため、非テンプレートが優先されます。実際、もう一方をテンプレートに変更すると、呼び出しがあいまいになります。

そこで、ユーザー定義の変換を導入したいと考えました。これは、2 番目のオーバーロードの正確な一致よりも厳密に悪いものです。

しかし、g++ は、これはまだあいまいであると言います。デフォルト引数のユーザー定義の変換がオーバーロードのランキングに影響しないのはなぜですか?

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

c++ - テンプレート メソッドへのデフォルト引数として関数ポインタを使用しているときにエラーが発生しました

このコードをコンパイルしようとすると、Visual Studio 2012 で次のコンパイラ エラーが発生します。

私のコード:

グローバル名前空間に移動bar::fooすると、エラーが発生しなくなりました。誰でも説明できますか?

上記のコードを編集して、メンバー関数とテンプレートの特殊化に関する混乱を取り除きました。typedef も削除しました。これにより、同じエラーのさらに奇妙なバージョンが発生します。cannot convert 'void(_cdecl*)(void)' to 'void(_cdecl*)(void)'

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

c++ - デフォルトの引数を持つ c++ 静的メンバー メソッド

静的メンバー変数にデフォルトの引数を使用すると、落とし穴はありますか? このような:

コンパイラは文句を言うことはありませんが、静的に関係する場合は常に注意しています。

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

c++ - デフォルトのテンプレート引数はどのように機能しますか?

テンプレートのデフォルト引数の構文に関する質問がたくさん寄せられていることは知っています。

通常、答えは(それがどのように機能するかについての私の理解と同期して)そのようなものを使用することです:

最近、Boost でどのマップ実装が使用されているかを確認したいと思いましたmapped_vector。そして、次のスニペットを見つけました:

どうやら、引数のデフォルトのバインディングはありませんが、どうやら、うまくAインスタンス化できますmapped_vector<int>。明らかに、デフォルトの引数は何らかの形で推論されますが、どのように?

編集:正確には、このファイルの279行目について話している

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

c++ - 未使用のデフォルト引数はパフォーマンスを低下させますか C++

function を宣言するとしますfoo(int arg1, int arg2 = 0, int arg3 = 0, int arg4 = 0)。最後の 3 つの引数はときどき (存在する場合) だけ指定され、ほとんどの場合、関数は として呼び出されfoo(some_int)ます。foo(int arg1)代わりに関数を として宣言し、実際に必要な場合は他の引数を渡すための別のソリューションを使用することで、パフォーマンスを向上させることができますか?

言い換えれば、宣言されているが指定されていないデフォルト引数は関数呼び出しを遅くしますか?

この場合の関数はオブジェクトのコンストラクターですが、それは一般的な質問です。

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

php - PHP で If ステートメントを使用して 2 つの引数を結合する方法

ここであなたの助けが本当に必要です。1 つの if ステートメントで、より大きい (>) とより小さい (<) の 2 つの引数を使用する方法を知りたいです。以下のコードでこれを実行しようとしましたが、「else」ステートメントでエラー メッセージが表示され続けます。

どんな助けでも大歓迎です、ありがとう。

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

php - 型にはまらない引数の受け渡しによる奇妙な動作

コードで関数を呼び出すときに誤って関数ヘッダーをコピーしましたが、何らかの理由でコードがまだ機能しています。どうしてこれなの?

当然、次のように記述します。

しかし、最後のパラメーターが実際に'results'. 純粋な変数の代入は単に として評価されるべきではありませんtrueか?

デフォルトでは、関数ヘッダーにあり$handle_keyます。null

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

python - 同一のデフォルトパラメータを持つPythonメソッドの変数の範囲?

かなり検索した後、これをカバーする例が見つかりませんでした。しかし、私は状況について混乱しているので、正しい用語を使用していない可能性があります。したがって、これはおそらく重複しているように感じます。

しかし、同じ名前のパラメーターを持つ 2 つのメソッドを持つ Python クラスがある場合、この動作はどうなるでしょうか?

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

c++ - デフォルト引数に右辺値参照を使用する

オブジェクトへのオプションの参照を取り、それが提供されていない場合は、関数の実行中に作成する関数を作成したい、つまり

もちろん、これは無効なコードです。このコンテキストでは、 を参照にBar暗黙的に変換することはできません。関数内で変更されているため、Bar参照を にすることはできません。constb

これは、右辺値参照を使用することで回避できます。つまり、

これは右辺値参照の有効な使用法ですか? 通常、右辺値を渡す場合のように、渡された をクリアするつもりはありませんが、呼び出し元は引数を呼び出すstd::move必要があります。BarBar

0 投票する
4 に答える
165 参照

c++ - C++ では、他のパラメーターをデフォルトのままにして、一部のパラメーターをどのように渡すことができますか?

これはすでにここで回答されていると確信していますが、検索では PHP、C#、および Java が返され続けます。特にC++について質問しています。

5 つの引数を取り、すべてにデフォルト値がある関数があり、3 番目の引数に値を指定して明示的に呼び出したい場合、1 番目と 2 番目の引数に何を渡せばよいでしょうか? (うまくいかないことはわかっfunc(,,"Third")ていますが、どちらもうまくいきませんfunc(thirdArg:"Third")