claudio@ubuntu64:~/chtulu linux$ gcc --version gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 #define strCopyRight "chtulu"\ "\nprogramming language"\ "\n[2013] LGPL (2) : daffra.claudio@gmail.com" .... const char *s = "\n"\ strCopyRight\ "\n\nUsage :\n"\ "\n"strProjectName" : <input file> "\ "\n\noptions\n"\ "\nhelp file : -h "\ "\ninput file : -i <input file name>"\ "\noutput file : -o <output file name>"\ "\n"; main.c: In function ‘void HelpFile()’: main.c:34:2: error: unable to find string literal operator ‘operator"" strProjectName’ -rwxrwxr-x 1 claudio claudio 28532 apr 14 22:47 ch\r claudio@ubuntu64:~/chtulu linux$ this piece of code (up) compile with error , as you see this ohter (down) piece of code compile without error : i must separate strProjectName with space before and after n.b. same version of gcc in windows tdm64-gcc-4.7.1-3 work good const char *s = "\n"\ strCopyRight\ "\n\nUsage :\n"\ "\n" strProjectName " : <input file> "\ "\n\noptions\n"\ "\nhelp file : -h "\ "\ninput file : -i <input file name>"\ "\noutput file : -o <output file name>"\ "\n";
Are you using -std=c++11 or -std=gnu++11 or -std=c++0x or -std=gnu++-0x ? If this is the correct behavior as the strCopyRight in this case is the custom operator.
See the section on "User-defined literals and whitespace" at http://gcc.gnu.org/gcc-4.7/porting_to.html
no bug, std=c++11
Also, the backslashes are a complete waste of time, you can just write: const char *s = "\n" strCopyRight "\n\nUsage :\n" "\n"strProjectName" : <input file> " "\n\noptions\n" "\nhelp file : -h " "\ninput file : -i <input file name>" "\noutput file : -o <output file name>" "\n";