Chciałem się zapytać co myślicie na temat rozszerzeń kompilatorów (niezgodnych ze standardem języka)?
Z jednej strony ułatwiają one zazwyczaj pisanie kodu, robią go czytelniejszym (dla twórcy), najczęściej przyśpieszają plik wyjściowy.
Z drugiej strony... No właśnie co? Wiem że rzeczy niezgodne ze standardem są po prostu ZUE i czynią kod nieprzenośnym i/lub nieczytelnym dla kogoś nieobeznanego w rozszerzeniach dla danego kompilatora. Ale czy to znaczy że nigdy nie można ich używać czy że używać, ale w prywatnym kodzie i rzadko.
PS. Pisząc myślę konkretnie o języku C++ ale zastanawiam się ogólnie.
PPS. Mając na myśli rozszerzenia kompilatora mam na myśli coś zgoła innego niż np. atrybuty specyficzne dla kompilatora. W przypadku atrybutów można robić jakieś #define NORETURN __attribute((noreturn)) i w razie potrzeby zmieniać define. W przypadku rozszerzeń cały kod idzie do kosza.