引数依存のルックアップがデフォルトの引数で機能しないのはなぜですか?

オルマイド

デフォルトの引数がADLをトリガーすることを期待して、次のコードを半分書きました。そうではありません(代わりにコンパイラエラーが発生しました)。
ADLをトリガーするには明示的な引数が必要ですか?

#include <iostream>

namespace sheldon
{
    enum FLAG{ USA , UK , EU };

    void fun( FLAG f = USA )
    {
        std::cout << "Fun with flags!" << std::endl;
    }
}

int main()
{
    fun();  // Does not compile
    // fun( sheldon::USA ); // compiles
}
重複排除ツール

ADLは、指定した引数でのみ機能します。そうしないと、事態は非常にひどくなり、名前空間はその内容を分離するのに役に立たなくなります。
これもあったらどうなるか考えてみてください。

namespace fun {
    struct tag {};
    void fun(tag = {})
    {
        std::cout << "Fun with tags!" << std::endl;
    }
}

旗やタグを楽しんでみませんか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SFINAEがデフォルトの関数引数の右側で機能しないのはなぜですか?

分類Dev

他の関数内で宣言された関数が引数依存のルックアップに参加しないのはなぜですか?

分類Dev

この場合、なぜ引数依存のルックアップが考慮されないのですか?

分類Dev

Pythonのpickleがデフォルトの引数としてメソッドをシリアル化しないのはなぜですか?

分類Dev

ベクトル引数がsetColumnWidth {xlsx}で機能しないのはなぜですか?[R]

分類Dev

デフォルトのメソッド引数が機能しない

分類Dev

デフォルト以外の引数がデフォルトの引数に続くことができないのはなぜですか?

分類Dev

Pythonマルチプロセッシング-functools.partialの使用がデフォルトの引数よりも遅いのはなぜですか?

分類Dev

なぜデフォルト引数の警告なのですか?

分類Dev

テンプレートとデフォルトの引数を使用できないのはなぜですか?

分類Dev

パラメータパックエラーでclangにデフォルト引数がないのはなぜですか?

分類Dev

印刷引数のフラッシュがデフォルトでFalseになっているのはなぜですか?

分類Dev

.join()が関数の引数で機能しないのはなぜですか?

分類Dev

フォールバック可変個引数コンストラクター-なぜこれが機能するのですか?

分類Dev

libc ++がマルチセットでのクラステンプレート引数の推定をサポートしないのはなぜですか?

分類Dev

ブロッククォートタグがPHPループで機能しないのはなぜですか?

分類Dev

デフォルトのnewsequentialid()が機能しないのはなぜですか?

分類Dev

Ternary演算子がJavaのメソッド引数内で機能しないのはなぜですか

分類Dev

デフォルトの引数の後にパラメータパックが許可されるのはなぜですか?

分類Dev

gccのイニシャライザでデフォルトの引数にアクセスできないのはなぜですか?

分類Dev

シェル関数でトラップ信号が機能しないのはなぜですか?

分類Dev

javaScript関数-デフォルトの引数が失敗するのはなぜですか?

分類Dev

ブルートフォースMD5ハックが機能しないのはなぜですか?

分類Dev

なぜc ++は決して使用できないデフォルトのテンプレート引数を許可するのですか?

分類Dev

デフォルト値が指定されている場合、このテンプレート引数の推定が失敗するのはなぜですか?

分類Dev

算術演算子の引数タイプがデフォルトでintになっているのはなぜですか?

分類Dev

アップデートが機能しないのはなぜですか?

分類Dev

params byte []引数が機能しないのはなぜですか?

分類Dev

後でテンプレート関数にデフォルトの引数を追加できないのはなぜですか?

Related 関連記事

  1. 1

    SFINAEがデフォルトの関数引数の右側で機能しないのはなぜですか?

  2. 2

    他の関数内で宣言された関数が引数依存のルックアップに参加しないのはなぜですか?

  3. 3

    この場合、なぜ引数依存のルックアップが考慮されないのですか?

  4. 4

    Pythonのpickleがデフォルトの引数としてメソッドをシリアル化しないのはなぜですか?

  5. 5

    ベクトル引数がsetColumnWidth {xlsx}で機能しないのはなぜですか?[R]

  6. 6

    デフォルトのメソッド引数が機能しない

  7. 7

    デフォルト以外の引数がデフォルトの引数に続くことができないのはなぜですか?

  8. 8

    Pythonマルチプロセッシング-functools.partialの使用がデフォルトの引数よりも遅いのはなぜですか?

  9. 9

    なぜデフォルト引数の警告なのですか?

  10. 10

    テンプレートとデフォルトの引数を使用できないのはなぜですか?

  11. 11

    パラメータパックエラーでclangにデフォルト引数がないのはなぜですか?

  12. 12

    印刷引数のフラッシュがデフォルトでFalseになっているのはなぜですか?

  13. 13

    .join()が関数の引数で機能しないのはなぜですか?

  14. 14

    フォールバック可変個引数コンストラクター-なぜこれが機能するのですか?

  15. 15

    libc ++がマルチセットでのクラステンプレート引数の推定をサポートしないのはなぜですか?

  16. 16

    ブロッククォートタグがPHPループで機能しないのはなぜですか?

  17. 17

    デフォルトのnewsequentialid()が機能しないのはなぜですか?

  18. 18

    Ternary演算子がJavaのメソッド引数内で機能しないのはなぜですか

  19. 19

    デフォルトの引数の後にパラメータパックが許可されるのはなぜですか?

  20. 20

    gccのイニシャライザでデフォルトの引数にアクセスできないのはなぜですか?

  21. 21

    シェル関数でトラップ信号が機能しないのはなぜですか?

  22. 22

    javaScript関数-デフォルトの引数が失敗するのはなぜですか?

  23. 23

    ブルートフォースMD5ハックが機能しないのはなぜですか?

  24. 24

    なぜc ++は決して使用できないデフォルトのテンプレート引数を許可するのですか?

  25. 25

    デフォルト値が指定されている場合、このテンプレート引数の推定が失敗するのはなぜですか?

  26. 26

    算術演算子の引数タイプがデフォルトでintになっているのはなぜですか?

  27. 27

    アップデートが機能しないのはなぜですか?

  28. 28

    params byte []引数が機能しないのはなぜですか?

  29. 29

    後でテンプレート関数にデフォルトの引数を追加できないのはなぜですか?

ホットタグ

アーカイブ