Cześć!
Kod, który piszę, jest pisany tak, by kompilował się i działał zarówno pod Windows, jak i pod Linuksem. I - wydaje mi się - że, z wyjątkiem jednego szczegółu, problemów nie powinno być. Jest jedna jedyna rozbieżnosć między platformami i dotyczy jednego miejsca w programie, w którym używam funkcji, za pomocą której usypiam wątek na kilkanaście milisekund. Pod Windowsem używam Sleep(), pod Linuksem będzie to select().
Pierwszym rozwiązaniem jest (skoro muszę - a muszę - mieć dwa makefile), stworzyć pliki sleep_lin.cpp i sleep_win.cpp, zawierającej implementację własnej funkcji spij(), która zależnie od platformy wywoła właściwego usypiacza. Później tylko wystarczy jedna podmiana w makefile i gotowe.
Szukam jednak jakiegoś ładniejszego rozwiązania. Czy nie dałoby się tego zrobić jakoś przy użyciu preprocesora?
Przykładowo:
#if SOURCE_SYSTEM=WINDOWS
//kod dla windowsa
#elsif SOURCE_SYSTEM=UNIX
//kod dla linuksa
#endif
Z góry dziękuję za pomoc.</ort>