static const Function* Get...();
static メンバ関数から const へのポインタを返せないのはなぜですか? それともできますか?
どこ
typedef void Function(Object * object, HandlerAction action);
呼び出し元が取得した関数ポインターを変更させたくないだけです。
static const Function* Get...();
static メンバ関数から const へのポインタを返せないのはなぜですか? それともできますか?
どこ
typedef void Function(Object * object, HandlerAction action);
呼び出し元が取得した関数ポインターを変更させたくないだけです。
コードで返そうとしているのは、定数の非メンバー関数へのポインターです (ただし、これは有効な構成ではなく、メンバー関数のみを定数にすることができます)。
あなたがしたいことは、次のように書かれた関数への定数ポインタを返すことです:
static Function * const Get...();
const
すぐ左の型に常に適用されます。それが最初のものでない限り(あなたの場合static
はタイプがないため、作成できませんconst
-その場合、それはすぐ右のタイプに適用されます。これはFunction
あなたの場合です。したがって、関数タイプ自体ではなく、ポインター。