LINUX.ORG.RU

Почему никто не пилит c11?

 , , , ,


0

2

Почему все компиляторы(gcc-5.1.0, clang-3.6.0) говорят о поддержки c++14, c++17, а у самих c11 отсутствует? Доколе?

ПРУФ:

З.Ы. Сам лично проверил следующий код на двух компиляторах: gcc-5.1.0 и clang-3.6.0

#include <threads.h>
...
int main() {
    thrd_sleep(&(struct timespec){.tv_nsec=1000}, NULL);
    return 0;
}

Получаем

23:19:49: Starting: "/usr/bin/ninja" 
[0/2 ?/sec] Building C object CMakeFiles/test.dir/src/main.c.o
FAILED: /usr/bin/gcc-5.1.0 -o CMakeFiles/test.dir/src/main.c.o -c test/src/main.c
test/src/main.c:1:21: fatal error: threads.h: No such file or directory

Согласно стандарту c11 в пункте 7.26.5.7 The thrd_sleep function такой метод есть в файле threads.h.


Сам лично проверил

а теперь сам лично запили или пиши в mail list проектов

anonymous ()

Ты путаешь компиляторы и стандартную библиотеку - все вопросы к авторам glibc.

P.S. алсо threads.h опциональная фишка, ее не обязательно поддерживать, чтоб называться С11-совместимым компилятором ^_^

anonymous ()

Потому, что здесь дело не в gcc или clang, а в glibc. И тебе написали же, возможно, скоро уже запилят. Просто по факту это никому особо не нужно, как я полагаю.

mix_mix ★★★★★ ()
Ответ на: комментарий от mix_mix

возможно, скоро уже запилят

Если на принцип не пойдут, их же pthreads типа «нестандартные» оказались, итого им надо либо копипастить, либо оборачивать старый код, а по хорошему вообще объявлять deprecated и выкидывать из POSIX дубликат.

anonymous ()

потому что есть с++11

anonymous ()

Да кому он нужен - отсталый язык без ООП.

Pavval ★★★★★ ()
Ответ на: комментарий от anonymous

как это threads.h опциональная фишка? она же в стандарте прописана, значит должна быть реализована.

AoD314 ()

Согласно стандарту c11 в пункте 7.26.5.7 The thrd_sleep function такой метод есть в файле threads.h.

А в сообщении об ошибке речь идет об отсутствии файла, а не объявления функции.

andreyu ★★★★★ ()
Ответ на: комментарий от AoD314

как это threads.h опциональная фишка? она же в стандарте прописана, значит должна быть реализована

Проблемы с восприятием английского текста?

Implementations that define the macro __STDC_NO_THREADS__ need not provide this header nor support any of its facilities © ISO/IEC 9899:2011

redgremlin ★★★★★ ()

И еще раз повторю, чтоб еще раз дошло. gcc-5.1 использует по умолчанию стандарт gnu11, который есть c11 с расширениями GNU.

А вот glibc как раз, c11 поддерживает не полностью.

nexfwall ★★★★ ()

Кстати, когда будет бесплатный драфт C11 после принятия стандарта? Что-то его подозрительно долго нет.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.