C ++これはどのようにメンバー関数ポインタではないのですか?

アレクサンダービリー

次のテストによると、これは:

std::cout << std::is_member_function_pointer<int A::*()>::value << std::endl;

メンバー関数ポインタではなく、通常の関数ですが、これは次のとおりです。

std::cout << std::is_member_function_pointer<int (A::*)()>::value << std::endl;

trueと評価されます。私はgccとmsvcの両方で試しました。これら2つの宣言の違いは何ですか?これらの結果は正しいですか?かっこがA::*重要なのはなぜですか?

乾杯とhth。-アルフ

括弧で囲まれた型式の違いは、演算子の優先順位に起因します。

タイプのより詳細で説明的な仕様を取得する1つの方法は次のとおりです。

C:\ my \ forums \ so \ 120> echo struct A {}; T = int A :: *();を使用します。T o; int x = o; > 1.cpp 

C:\ my \ forums \ so \ 120> g ++ -c 1.cpp 
1.cpp:1:48:エラー:「intA :: *(*)()」から「int」への変換が無効です[-fpermissive] 
 struct A {}; T = int A :: *();を使用します。T o; int x = o; 
                                                ^ 

C:\ my \ forums \ so \ 120> _

したがって、型の変数の型int A::*()int A::* (*)()であることがわかります

編集:解決策としてマークされている間はこの投稿を削除できないため、記録のために:上記のコードでoは変数ではありません。代わりに、それは関数宣言です。int A::*()は直接関数型、つまりデータメンバーポインタを返す関数です。

今コーヒーに向かって…

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

C ++:メンバー関数へのポインターを含む任意のファンクターを取得できるように、関数をオーバーロードするにはどうすればよいですか?

分類Dev

関数メンバーへのポインタ: `R(* C :: *)(Args ...)`はどういう意味ですか?

分類Dev

C#で「関数ポインタへのtypedef」を作成するにはどうすればよいですか?

分類Dev

C ++でメンバー関数のみを継承するにはどうすればよいですか?

分類Dev

C-この関数ポインタ宣言はどういう意味ですか?

分類Dev

C ++クラスのプライベートメンバーとして一般的な関数ポインタを取得するにはどうすればよいですか?

分類Dev

Cポインターは、このような関数の仮パラメーターとしてどのようになりますか?

分類Dev

C関数ポインタにはどのような種類のC ++関数を配置できますか?

分類Dev

多くの種類の異なる関数ポインタを返すC関数を呼び出すにはどうすればよいですか?

分類Dev

MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

分類Dev

MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

分類Dev

MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

分類Dev

Cの関数呼び出しでポインター引数の値を1行でインクリメントまたはデクリメントするにはどうすればよいですか?

分類Dev

C ++:constメンバー関数から非constポインターパラメーターを受け取る外部関数にポインター値のメンバー変数を渡すことができるのはなぜですか?

分類Dev

GuileのScheme関数からC関数ポインターを作成するにはどうすればよいですか?

分類Dev

C ++のメンバーへのポインターは内部でどのように機能しますか?

分類Dev

C#でそのメンバー関数にアクセスしながら、1つのクラスのコンストラクターを呼び出さないようにするにはどうすればよいですか?

分類Dev

Cでは、関数への文字ポインターを渡して、どこかを指すようにします。間違っていますか?

分類Dev

C#で別のクラスの関数ポインタデリゲートを渡すにはどうすればよいですか?

分類Dev

C関数への引数として生のポインタを介してクロージャを渡すにはどうすればよいですか?

分類Dev

Cのパラメーターとして、任意の数のパラメーターを持つ関数へのポインターを受け入れて呼び出すにはどうすればよいですか?

分類Dev

C ++これらの関数がコンストラクターで渡される場合、カスタムハッシュでunordered_mapを使用し、メンバー変数として比較するにはどうすればよいですか?

分類Dev

c ++メンバー関数引数は関数本体で使用されていませんが、この場合はどうなりますか?

分類Dev

C ++の関数内のポインターにconst参照を割り当てるにはどうすればよいですか?

分類Dev

CでC ++関数ポインタを公開するにはどうすればよいですか?

分類Dev

fseek()を使用してfread()関数内のポインターを適切に移動するにはどうすればよいですか?(C)

分類Dev

Cでtypedefを使用せずに、関数ポインターを返す関数へのポインターを返す関数を宣言するにはどうすればよいですか?

分類Dev

関数ポインタを渡して、C ++の関数で比較するにはどうすればよいですか?

分類Dev

C ++の基本クラスポインタを使用して派生クラスのメンバー関数に到達できないのはなぜですか?それのデザインのアイデアは何ですか?

Related 関連記事

  1. 1

    C ++:メンバー関数へのポインターを含む任意のファンクターを取得できるように、関数をオーバーロードするにはどうすればよいですか?

  2. 2

    関数メンバーへのポインタ: `R(* C :: *)(Args ...)`はどういう意味ですか?

  3. 3

    C#で「関数ポインタへのtypedef」を作成するにはどうすればよいですか?

  4. 4

    C ++でメンバー関数のみを継承するにはどうすればよいですか?

  5. 5

    C-この関数ポインタ宣言はどういう意味ですか?

  6. 6

    C ++クラスのプライベートメンバーとして一般的な関数ポインタを取得するにはどうすればよいですか?

  7. 7

    Cポインターは、このような関数の仮パラメーターとしてどのようになりますか?

  8. 8

    C関数ポインタにはどのような種類のC ++関数を配置できますか?

  9. 9

    多くの種類の異なる関数ポインタを返すC関数を呼び出すにはどうすればよいですか?

  10. 10

    MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

  11. 11

    MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

  12. 12

    MetalカーネルのC ++参照またはポインターのメンバーにアクセスするにはどうすればよいですか?

  13. 13

    Cの関数呼び出しでポインター引数の値を1行でインクリメントまたはデクリメントするにはどうすればよいですか?

  14. 14

    C ++:constメンバー関数から非constポインターパラメーターを受け取る外部関数にポインター値のメンバー変数を渡すことができるのはなぜですか?

  15. 15

    GuileのScheme関数からC関数ポインターを作成するにはどうすればよいですか?

  16. 16

    C ++のメンバーへのポインターは内部でどのように機能しますか?

  17. 17

    C#でそのメンバー関数にアクセスしながら、1つのクラスのコンストラクターを呼び出さないようにするにはどうすればよいですか?

  18. 18

    Cでは、関数への文字ポインターを渡して、どこかを指すようにします。間違っていますか?

  19. 19

    C#で別のクラスの関数ポインタデリゲートを渡すにはどうすればよいですか?

  20. 20

    C関数への引数として生のポインタを介してクロージャを渡すにはどうすればよいですか?

  21. 21

    Cのパラメーターとして、任意の数のパラメーターを持つ関数へのポインターを受け入れて呼び出すにはどうすればよいですか?

  22. 22

    C ++これらの関数がコンストラクターで渡される場合、カスタムハッシュでunordered_mapを使用し、メンバー変数として比較するにはどうすればよいですか?

  23. 23

    c ++メンバー関数引数は関数本体で使用されていませんが、この場合はどうなりますか?

  24. 24

    C ++の関数内のポインターにconst参照を割り当てるにはどうすればよいですか?

  25. 25

    CでC ++関数ポインタを公開するにはどうすればよいですか?

  26. 26

    fseek()を使用してfread()関数内のポインターを適切に移動するにはどうすればよいですか?(C)

  27. 27

    Cでtypedefを使用せずに、関数ポインターを返す関数へのポインターを返す関数を宣言するにはどうすればよいですか?

  28. 28

    関数ポインタを渡して、C ++の関数で比較するにはどうすればよいですか?

  29. 29

    C ++の基本クラスポインタを使用して派生クラスのメンバー関数に到達できないのはなぜですか?それのデザインのアイデアは何ですか?

ホットタグ

アーカイブ