История изменений
Исправление hateyoufeel, (текущая версия) :
они наверное хотели по аналогии со SFINAE сделать UBINAE.
По аналогии? UB в C появилось задолго до шаблонов в C++.
это декларативное в императивном.
Это говно в залупе. Например, помимо традиционных извращений с указателями и числами, в C считаются UB такие штуки как:
- Отсутствие переноса строки в самом конце файла;
- Символы ’ или ", для которых нет пары;
- Два обозначения (identifier) отличающиеся только не имеющими значения символами;
- пустые struct или union (т.е. без членов внутри, типа
struct s {}
);
И так далее, и тому подобное. Это всё undefined behaviour, да, но почему-то в этих случаях компилятор кидает ошибку (ну либо болт забивает, если нет переноса строки). Пусть мне тут великий zx_gamer объяснит, зачем для оптимизации кода обязательно нужен перенос строки в конце файла.
Исправление hateyoufeel, :
они наверное хотели по аналогии со SFINAE сделать UBINAE.
По аналогии? UB в C появилось задолго до шаблонов в C++.
это декларативное в императивном.
Это говно в залупе. Например, помимо традиционных извращений с указателями и числами, в C считаются UB такие штуки как:
- Отсутствие переноса строки в самом конце файла;
- Символы ’ или ", для которых нет пары;
- Два обозначения (identifier) отличающиеся только не имеющими значения символами;
- пустые struct или union (т.е. без членов внутри, типа
struct s {}
);
И так далее, и тому подобное. Это всё undefined behaviour, да, но почему-то в этих случаях компилятор кидает ошибку (ну либо болт забивает, если нет переноса строки). Пусть мне тут велийи zx_gamer объяснить, зачем для оптимизации кода обязательно нужен перенос строки в конце файла.
Исходная версия hateyoufeel, :
они наверное хотели по аналогии со SFINAE сделать UBINAE.
По аналогии? UB в C появилось задолго до шаблонов в C++.
это декларативное в императивном.
Это говно в залупе. Например, помимо традиционных извращений с указателями и числами, в C считаются UB такие штуки как:
- Отсутствие переноса строки в самом конце файла;
- Символы ’ или ", для которых нет пары;
- Два обозначения (identifier) отличающиеся только не имеющими значения символами;
- пустые struct или union (т.е. без членов внутри, типа
struct s {}
);
И так далее, и тому подобное. Это всё undefined behaviour, да, но почему-то в этих случаях компилятор кидает ошибку (ну либо болт забивает, если нет переноса строки). Пусть мне тут велийи zx_gamer объяснить, зачем для оптимизации кода обязательно нужен перенос строки в конце файла.