РЕДАКТИРОВАТЬПоскольку многие комментаторы обращаются к действительно ясному случаю компилятора, такого как «один», «два», который представляет собой одну строку, мне нужно подчеркнуть использование для этой цели пользовательского литерала, я добавил 2 дополнительных оператора : _kylobyte и my_ns::s (я знаю, что не использовать '_' - плохо).
EDIT 2Хорошо, @user17732522 доказывает фундаментальное поведение лекса. Итак, я предлагаю еще один пользовательский строковый литерал . Поведение компилятора заключается в том, что он собирает схожие определенные пользователем, но работает должным образом, когда используются два разных. Поэтому следует учитывать не только lex.
Минимальный воспроизводимый код следующий:
Код: Выделить всё
#include
template
void consume_all(Tx&& ...tx)
{
((std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79010227/c17-user-defined-literals-strange-behavior-for-sequence-of-strings[/url]