1

関数ポインターの配列を作成しようとしています。

配列はかなりの数の関数になります (どこかで 10 から 50 の間)。

この宣言は、私が使用しているものと似ています。

int (*functions[15])(int, int);

私が直面している問題は、これらの関数をすべて手動で定義する必要があることです。これで問題ありません。ただし、それらすべてに名前を付けることは気にしません。

配列に含まれる関数は、配列の外部から呼び出されることはありません。

私はこの質問で運を押していることを知っていますが、匿名関数 (デリゲートに似ていると思います) をこの配列に入れる方法はありますか?

または、次のような宣言を使用できますか。

int (*functions[15])(int, int);

(*function[0])(int x, int y)
{
    //stuff
}

(*function[1])(int x, int y)
{
    //other stuff
}

可能であれば、これで C++11 を使用することも避けたいと考えています。多くの改善が行われたことは理解していますが、すべてのコンパイラがそれをサポートするかどうかはわかりません (プラットフォーム間で複数のコンパイラを使用するつもりです)。

すべての関数に名前を付けずにこれを行う方法はありますか、それとも運が悪いのでしょうか?

4

1 に答える 1

1

無名関数がない場合は、関数に名前を付ける必要があります。C++11より前には代替手段はありません。

于 2012-05-12T21:20:59.063 に答える