関数内でマクロを複数回使用する必要があり、使用する必要があるマクロは関数に渡す数値によって異なります。整数によるマクロ使用
function(int number) {
switch(number) {
case 0: doStuff(MACRO0); break;
case 1: doStuff(MACRO1); break;
}
}
問題は次のとおりです。同じマクロでswitch文ごとに行うべきことがたくさんあります。 スイッチのステートメントにそのようなものがすべて含まれているより洗練されたソリューションがありますか?マクロ自体を関数に渡すのと同じですか?私はC++のメソッドのようにeval()について読んだことがありますが、彼らは私にはうってつけです。もう一つの方法は、マクロが展開するものを決定することですが、私はこれに関する情報は見つかりませんでした。
ああ、実際にはOpenGLです。
なぜ関数ポインタを使用しないのですか? –
op()を使用する関数オブジェクトはより高速でインライン化できるためです。彼がOpenGLをやっていることを考えると、スピードが重要だと思います。 –