Этот вопрос о том, как разбить (широкую) строковую константу на несколько строк в коде, задавался и отвечался несколько раз на этой платформе ( здесь , например). Я использовал следующий подход для объявления строки шириной c в самом определении класса:
#include <Windows.h>
#include <iostream>
class Test
{
public:
static constexpr WCHAR TEST[] = L"The quick brown fox" \
L"jumped over the" \
L"lazy dog!";
/* ... */
};
int main ()
{
wprintf(Test::TEST);
return 1;
}
Однако этот подход работает не очень хорошо, если вы хотите начать комментировать каждую строку вашего многострочная строка. Единственный способ добиться этого - вставить многострочный комментарий между строкой и обратным символом sh (\
) примерно так:
class Test
{
public:
static constexpr WCHAR TEST[] = L"The quick brown fox" /* A comment */\
L"jumped over the" /* Another comment*/\
L"lazy dog!";
/* ... */
};
Если после комментария поместить комментарий backsla sh (\
), затем возникает ошибка компилятора. Это означает, что вы не можете использовать традиционный однострочный комментарий (//
) с этим методом. На самом деле, если вы ставите один пробел после backsla sh (\
), то генерируется ошибка компилятора.
Мой вопрос заключается в следующем, есть ли способ объявить широкую строку в несколько строк, где вы можете использовать однострочные комментарии (//
) для комментирования каждой строки?
Я бездельничаю, ища что-то вроде этого (похоже на Java):
static constexpr ... = L"The quick brown fox" + // A little comment here...
L"jumped over the" + // A little comment there.
L"lazy dog!";
Я понимаю, что в Java все невероятно отличается (т.е. именно все является объектом), но я просто привожу это в качестве примера того, чего я добиваюсь.