mercredi 16 août 2017

Replace characters in preprocessor definition

I have a definition which includes a path (with no escape sequence) like this one:

// Incorrect
#define PATH "c:\blah\blah\file.cfg"

I would rather like it as this:

// Corrected
#define PATH "c:\\blah\\blah\\file.cfg"

Though unfortunately I can not modify the macro definition (actually the script that generates the source that includes the macro...), except for adding prefixes. Now I need to open the file given in this path. I tried c++11 raw string literals like this:

// Modified definition
#define PATH R"c:\blah\blah\file.cfg"
std::ifstream(PATH); // error: unrecognised escape sequence 

Now the question is how to replace all \ using a macro?

Notes (if does matter):
Compiler: MSVC 14.0
OS: Windows 7

Aucun commentaire:

Enregistrer un commentaire