tgoop.com/misha_writes_code/69
Last Update:
Тут будет Undefined Behavior)
Из-за двойных кавычек аргументами передаются не два элемента типа char, а две строки и initializer list не срабатывает, так как для него элементы листа должны быть char, а мы даем char*.
Но и ошибки компиляции не будет, так как в данном случае удается найдется другой конструктор, который подходит - конструктор от двух итераторов. Тогда указатель на "," будет началом интервала, а на ";" концом. Но валидным интервалом это не будет.
Соответственно, если бы было 3 аргумента, то тогда уже такой конструктор не нашелся и код бы не скомпилировался.
Обидно, конечно, что не будет ошибки компиляции, потому что достаточно просто перепутать одинарные кавычки и двойные.
Но, к счастью, address sanitizer это ловит. То есть при компиляции с -fsanitize=address
ошибка будет обнаружена. Ну хоть не этом спасибо)
BY Миша пишет код
Share with your friend now:
tgoop.com/misha_writes_code/69