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あなたの場合です。したがって、関数タイプ自体ではなく、ポインター。