20+ лет не писал на C++, недавно пришлось начать снова. Поэтому современный C++ осваиваю потихоньку, когда время позволяет.
В кодовой базе, с которой работаю, есть такой фрагмент кода в тесте:
for (const QString &host : {"localhost", "test"}) {
...
}
Почему-то некоторые компиляторы это компилируют, а некоторые (gcc 11.2) — отказываются.
У меня сомнения - валидный ли это код. На мой взгляд, это комплироваться не должно, но clang, например, компилит без проблем. Или просто gcc 11 — слишком старый?..
Как оно тогда работает, как можно присвоить ссылке на QString
обычную C-строку? Бегло погуглил, и кажется, что оно работать не должно, но работает ведь.