次のような状況があります。
void function(params)
{
#ifdef _MULTIPLAYER
if (isConnected)
{
if (isClient)
{
requestFunctionRemotely(params)
return;
}
else if (isServer)
{
call realFunction(params) remotely on client;
}
}
#endif
realFunction(params);
}
realFunction(params)
{
...
}
この状況では、シングル プレイヤー インスタンスまたはマルチプレイヤーのいずれかでプロジェクトをビルドできます。
このアプローチはfunction(params)
、コード全体で呼び出されているため使用されているため、この方法で、問題なく可能な限り低いレベルにアタッチします。
ループを回避するために、クライアントが受信したリモート応答を実行する必要があるため、 function
andを分割する必要がありました (関数プロトタイプを変更してフラグを追加することはできましたが、多くのコードが壊れてしまいます)。realFunction
realFunction
私の懸念は、定義を無効にするときのパフォーマンスに関連してい_MULTIPLAYER
ます。私はたくさん持っています、function(params)
そして私はそれらを何千回も呼びます。私はそれらすべてにこのアプローチを使用する必要があります。g++ は、見つかったときに二重呼び出しを最適化しますか?
function(params) {
realFunction(params);
}
に
function(params) {
// body of realFunction
}
そして、すべての同様の状況でそれを強制する方法はありますか?
ヒントとして:私は現在-O2
フラグを使用しています