Así que supuse que me perdí el tren en este caso, pero yo estaba teniendo un problema similar, incluso después de encontrar el código que teóricamente debería funcionar. El problema es el tipo de datos boost :: filesystem :: path toma el último carácter de una cadena.
Estaba leyendo de un archivo y mi ruta era "c: \ one \ two \ three". Pero cuando lo convertí en un tipo de datos de ruta, la cadena se cambió a "c: \ one \ two \ thre". No tengo idea de qué es eso, pero debido a esto no se encontró la ubicación del archivo y bla, bla, bla. Lo que hice para arreglarlo fue simplemente agregar otro '\' hasta el final. De esa forma elimina el '\' en lugar de la 'e'.
funcionó bien después de eso. Pero como dije antes, no tengo idea de por qué lo hizo. Espero que esto ayude a alguien.
¿Alguna sugerencia sobre cómo puedo corregir el código (sigue usando BOOST_FOREACH)? – user763305
Necesita pasar algo que FOREACH puede repetir como una matriz de archivos, por ejemplo. De lo contrario, no use FOREACH. – clyfe