LINUX.ORG.RU

История изменений

Исправление 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 объяснить, зачем для оптимизации кода обязательно нужен перенос строки в конце файла.