LinuxとWindowsでの実行をサポートするプロジェクトを維持する必要があります。このようなプリプロセッサディレクティブを使用する一部のコードは問題ありません。
#ifdef _WIN32 // _WIN32 is defined by Windows 32 compilers
#include <windows.h>
#else
#include <unistd.h>
#endif
しかし、いくつかは実際の実装であり、プリプロセッサディレクティブの使用を防ぎたいと思います。
void Foo()
{
#ifdef _WIN32 // _WIN32 is defined by Windows 32 compilers
code for windows
#else
code for Linux
#endif
some common code...
#ifdef _WIN32 // _WIN32 is defined by Windows 32 compilers
code for windows again
#else
code for Linux again
#endif
}
そのため、物事は複雑になり、維持するのが難しくなります。より良い方法はありますか?