знал давно, но только недавно надумал воспользоваться. насколько легальны с точки зрения стандартов, разных компиляторов и предсказуемости разрывы в строках? типа:
| Код | int main() { cout << "dfgdfgdfg" "sfgdgslkfdgjsdgf'" "fsdfsk;jh" "dsdfg sdfg " << endl;
return 0; }
|
или же:
| Код | int main() { string s = "dfgdfgdfg" "sfgdgslkfdgjsdgf'" "fsdfsk;jh" "dsdfg sdfg ";
cout << s << endl;
return 0; }
|
vc++ это замечательно съедает и корректно отображает. но кроме переносимости (кстати, меня это волнует в последнюю очередь) смущает вопрос, насколько это подвержено ошибкам. потому как хотелось бы что-нибудь вроде этого:
| Код | #define DIGITS "0123456789" #define LETTERS "ABCDEFGHIJKLMNOPQRSTUVWXYZ" #define LETTERS_DIGITS DIGITS LETTERS #define LETTERS_DIGITS_SYMBOLS "-./" LETTERS_DIGITS
int main() { cout << LETTERS_DIGITS_SYMBOLS << endl;
return 0; }
|
если сузить проблему, то, наверное, было бы вернее задать вопрос: кто занимается склейкой строк - прекомпилер или компилятор? |