Sto scrivendo una libreria di socket multipiattaforma e useremo l'idioma pimpl in modo che gli utenti che includono intestazioni per la libreria non debbano preoccuparsi di problemi specifici del sistema operativo.
Quindi, ad esempio un file portable.hpp
sarebbe simile a questo:
// forward declare pimpl
struct socketimpl;
class portable
{
public:
private:
socketimpl *pimpl_; // hide OS specific details
};
Ma come faccio a dare un nome ai file di implementazione.
Potrei avere portablewin.cpp
, portablelinux.cpp
ecc.
Avrei quindi cartelle specifiche per i diversi sistemi operativi supportati?
Una struttura di cartelle come questa:
/makefile
/include/
/src/unix/
/src/windows/
Quindi ci sarebbe un makefile standard che includerebbe un makefile di supporto che avrebbe i file specifici ecc. per ogni piattaforma supportata.
Quindi utilizzare un makefile specifico del sistema operativo per ogni sistema operativo?
È il miglior piano? O altre idee?