Una forma simple de hacer lo que usted pide es tener una función pequeña (probablemente en línea) que utiliza la magia del preprocesador para determinar la plataforma (#ifdef WIN32
, etc.) y devuelve el caracter delimitador apropiado.
La respuesta es un poco más complicado porque hay otras diferencias más significativos que el carácter delimitador. Los sistemas de archivos de Windows pueden tener múltiples raíces (C: \, D: \, etc.), mientras que todo el FS está enraizado en/en Unix-land.
El mejor consejo podría ser utilizar boost::filesystem
.
Aún no lo he probado con una máquina windwos, pero si funciona, esto es suficiente para mí. – Janusz
En la medida de lo posible, funcionará. Tenga en cuenta que las rutas de DOS pueden comenzar con una letra de unidad y dos puntos (de lo contrario, son relativos a la unidad actual). Y tenga cuidado con los 'tenedores' alternativos y los nombres de los dispositivos. –
Windows está realmente bien con la barra diagonal. –