Страницы

Детектор языков C и C++

C++, в целом, старается быть надмножеством языка C, но всё же им не является. Вот пример проявляемых различий:

c-not-cxx: cat main.c
#include <stdio.h>

int main(int argc, char* argv[]) {
  const int c = 0;
  ++*(int *)&c;
  if (c != *&c) {
    printf("C++ is crap\n");
  } else {
    printf("C is rubbish\n");
  }
  return 0;
}
c-not-cxx: g++ main.c -o main -Wall -fsanitize=undefined && ./main
C++ is crap
c-not-cxx: gcc main.c -o main -Wall -fsanitize=undefined && ./main
C is rubbish

Комментариев нет:

Отправить комментарий