concatenate - strcat c++
Concatenando cadenas en macros-C++ (2)
El compilador concatenará automáticamente las cadenas adyacentes:
#define ROOT_PATH "/home/david/"
#define INPUT_FILE_A ROOT_PATH "data/inputA.bin"
O más genérico:
#define INPUT_FILE_DETAIL(root,x) root #x
#define INPUT_FILE(x) INPUT_FILE_DETAIL(ROOT_PATH "data/", x)
¿Cuál es la forma más fácil de concatenar cadenas definidas en macros? Es decir, el pseudo código que estoy buscando sería como:
#define ROOT_PATH "/home/david/"
#define INPUT_FILE_A ROOT_PATH+"data/inputA.bin"
#define INPUT_FILE_B ROOT_PATH+"data/inputB.bin"
...
#define INPUT_FILE_Z ROOT_PATH+"data/inputZ.bin"
La única manera que conozco es usar strcat en el código, o usar la clase de cadena y luego el método c_str, pero puede causar problemas cuando tengo muchos archivos de entrada. Me gustaría usar INPUT_FILE_A, etc. directamente y no tener muchas variables locales. ¿Existe una forma correcta de hacer esto?
Gracias.
Shell estaba "comiendo" las citas. Entonces, la siguiente línea tenía que usar:
-DROOT_PATH=/"some-string"/