Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:19:01

Открываем стандарт С++17.

При чем здесь кресты? Эмбеддеры на крестах не пишут! Кресты нужны исключительно для создания GUI на ненужной Qt!

Тебя забыли спросить :)

VladislavS, я же Вам уже писал, что C++17 для продуктива пока не готов. Не надо бежать впереди паровоза. И мои проблемы не надо решать, так как я их давно решил при помощи pragma, что совместимо даже с C89/90.

Как язык может быть не готов? С++17 и через 10 лет останется С++17. Это вы к нему не готовы.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:26:41

VladislavS, нет ни одного компилятора, способного со включенным режимом C++17 скомпилировать проекты, успешно компилируемые в режиме C++11

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:35:33

Во-первых, стандарт языка то тут причём? Во-вторых, я, например, пользуюсь компилятором у которого нет выбора стандарта - либо С, либо С++ все до 17-го.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:41:42

Стандарт языка хотя бы при том, что, скажем, констркукции из С99 будут неправильными в С89. А конструкции С77 неверны в С11.
Я как-то убил неделю и вылизал все ошибки, связанные с компилированием девятым g++ древнего крестового кода (можешь посмотреть на гитхабе RTS2). Заодно несколько грубых ошибок исправил. А Кубанек - основной автор RTS2 - отказался пулриквест принять, мотивируя это тем, что у него на половине железок четвертый g++ ! После этого я понял, что RTS2 нельзя использовать, и нужно писать свой велосипед. Заодно он будет на кошерной сишечке, а не дебильных крестах!
Так вот, по теме: с опциями -Wall -Werror -Wextra код, который вроде как нормально просвистывал по стандарту крестов 99 года, по стандарту 11 выдавал дикое количество ошибок! А по стандарту 17 это вообще было нечто...

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:47:57

Ну всё верно, язык совершенствуется. Он ловит больше гадостей в коде - надо только радоваться.

Тот же fallthrough, о котором вы сами сегодня заговорили. Ну разве плохо, что компилятор спросит не забыл ли я там break?
Последний раз редактировалось VladislavS Чт окт 03, 2019 20:52:56, всего редактировалось 1 раз.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:52:13

VladislavS, я без понятия каким компилятором Вы пользуетесь, но, например, GCC реализовал полную поддержку C++17 только в 8-ой версии, тогда как многие проекты до сих пор с 5.4 выбраться не могут, а редкие прешли на 7.x только в прошлом или этом годах. На 8.x я вообще ни одного крупного проекта не видел.
Red Hat до сих пор на 5.4, Ubuntu сумели в прошлом году переползти на 7.3, MinGW тоже стабильно работает только на 7.4 максимум.
Можете назвать хотя бы один крупный проект на GCC 8.X, не говоря уже о 9.X?
Или хотите на примере другого компилятора рассмотреть масштаб бедствия?

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 20:56:38

Вы темой не ошиблись случайно? "Список форумов » Микроконтроллеры и ПЛИС » Разные вопросы по МК » Вопросы по С/С++ (СИ)". Я когда Ubuntu на кортексе соберусь запустить в следующий раз обязательно обращусь.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:00:45

основной автор RTS2 - отказался пулриквест принять, мотивируя это тем, что у него на половине железок четвертый g++ ! После этого я понял, что RTS2 нельзя использовать, и нужно писать свой велосипед
берешь и форкаешь, лицензия позволяет. Чо сразу велосипедить-то?)

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:03:55

Можете назвать хотя бы один крупный проект на GCC 8.X, не говоря уже о 9.X?

Не понял, а в чем, собственно, может быть проблема? Скажем, у меня дома:
Код:
gcc-config -l
...
 [5] x86_64-pc-linux-gnu-7.3.0
 [6] x86_64-pc-linux-gnu-8.2.0
 [7] x86_64-pc-linux-gnu-8.3.0 *

На работе:
Код:
 [9] x86_64-pc-linux-gnu-7.3.0
 [10] x86_64-pc-linux-gnu-8.3.0 *
 [11] x86_64-pc-linux-gnu-9.1.0
 [12] x86_64-pc-linux-gnu-9.2.0

И ничего, гетушка собирается, проблем нет. Коллега вообще на девятый gcc уже перешел на постоянной основе...
берешь и форкаешь, лицензия позволяет. Чо сразу велосипедить-то?)

У меня от крестов неудержимый рвотный рефлекс! Так что, лучше я с нуля напишу, разве что идею планнера у Кубанека возьму (если у него алгоритм хороший, надо внимательней его статьи почитать) — все равно мне не нужно поддерживать 100500 устройств, у нас будет три телескопа, немного разные, но это не 20 полностью разнородных телескопов! Из стеллариума я давно управляю ими + можно на баше написать скрипт, чтобы поочередно наводиться на разные объекты, фокусироваться при необходимости и делать научные экспозиции. Но народу GUI нужно, так что, придется веб-морду писать по-любому.
Последний раз редактировалось Eddy_Em Чт окт 03, 2019 21:07:12, всего редактировалось 1 раз.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:06:12

VladislavS, нет не ошибся. Это обозначает, что если я попробую перейти на GCC 8.X или, тем более, на GCC 9.X, подавляющее большинство того, что доступно в исходниках на просторах интернета у меня не будет компилиться. И не важно что это: CORDIC, Рид-Соломон, Хаффман или даже просто арифметика с фиксированной точкой.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:10:23

ПростоНуб, выше я уже написал! Все будет компилироваться. По крайней мере, с гентушными патчами — стопудово! Иначе девятый gcc в генте даже в unstable бы не находился. Правда, в stable до сих пор самое свежее - gcc-7.3.0-r6. Возможно, боятся, что что-нибудь да отвалится под восьмым или девятым. Но я никаких проблем не встречал на восьмом.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:10:52

Eddy_Em, 8.3 в Генте множество пакетов собрать не может, хотя уже в состоянии собрать систему на C (C++ в системе нет). Именно поэтому, Вы сами написали, что приходится держать 7.3. Удалите у себя GCC 7.3 и попробуйте пересобрать мир. Я поприкалываюсь )))

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:12:53

Остаётся только посочувствовать :)

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:13:49

ПростоНуб, ХЗ, может, каким-нибудь ублюдским культяпкам старый гцц и нужен. Но вот у нас сервак стоит, там мы перешли на 9.1.0 и удалили все старые gcc. После этого пересобрали мир и ядро (на 32-ядерном серваке с 64ГБ оперативы очень шустро все компиляется). И ничего не отвалилось!
Но там, понятное дело, ни иксов, ни иксовых приложений, ни культяпок нет за ненадобностью... Сервак все-таки!

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:38:33

Eddy_Em, там, с очень большой вероятность, нет ни одного исходника на C++. А основные грабли собирают именно на плюсах, а не C.
Но боевой сервак я бы не рискнул на 9.X переводить. По крайней мере, пока на сайте генты моя платформа не позеленеет. А пока даже 8.3 без патчей "-r1" все не компилит.

Добавлено after 4 minutes 58 seconds:
VladislavS, Вы, кстати, так и не ответили, каким компилятором пользуетесь и как Вам удается им компилировать сторонние библиотеки.

Re: Вопросы по С/С++ (СИ)

Чт окт 03, 2019 21:51:40

VladislavS, Вы, кстати, так и не ответили, каким компилятором пользуетесь и как Вам удается им компилировать сторонние библиотеки.
А вы и не спрашивали. Перечитал последние сообщения ещё раз - точно, не спрашивали.

Re: Вопросы по С/С++ (СИ)

Пт окт 04, 2019 06:23:23

Red Hat до сих пор на 5.4, Ubuntu сумели в прошлом году переползти на 7.3, MinGW тоже стабильно работает только на 7.4 максимум.
Можете назвать хотя бы один крупный проект на GCC 8.X, не говоря уже о 9.X?

Только вчера собирал на CentOS 7 пакет нужный GCC 8. Там просто ставится yum install devtoolset-8 и вот тебе gcc-8.x. В Debian (и всех дистрах, основанных на нём) тоже без проблем ставится 8ой GCC. Просто он не "по-умолчанию". Не вижу в этом проблемы.

Re: Вопросы по С/С++ (СИ)

Пт окт 04, 2019 08:27:57

jcxz, хватит смешить народ и прочитайте, что написал я, а куда понесло Вас )))

Я написал следующее (напоминаю):
В корне неправильно!
От варнингов нужно избавляться всегда.
...
А как именно избавляться - это уже можно делать по-разному.

С чем Вы не согласились и начали приводить что-то маловразумительное, не понятно как относящееся к моей фразе.

Если Вам смешно, поясните: что именно смешно? Посмеёмся вместе с Вами. .....или над Вами. :)))

Re: Вопросы по С/С++ (СИ)

Пт окт 04, 2019 09:38:44

jcxz, если бы Вы умели читать, то обнаружили бы, что и привел пример ситуации, когда от предупреждения можно избавиться наиболее оптимально только запретив компилятору это предупреждение выдавать.

А смешно то, что в моем примере речь шла о неиспользуемых параметрах функции, это обсуждалось, были предложены варианты подавления этих предупреждений для GCC, SDCC и даже стандарта C++17, после чего откуда то возникли Вы, с преобразованиями типов указателей на функцию, что намного опасней, чем подавление малозначительного предупреждения.

Понятно, что я привел простейший пример. Более жизненный пример - Timer1_Callback/Timer2_Callback функции из CMSIS_RTOSv1. Они имеют один аргумент (void *). И что Вы делаете, если этот аргумент в данном проекте Вам совершенно не нужен?
Последний раз редактировалось ПростоНуб Пт окт 04, 2019 10:19:03, всего редактировалось 1 раз.

Re: Вопросы по С/С++ (СИ)

Пт окт 04, 2019 10:03:03

ПростоНуб, из-за слишком "умного" gcc мне, начиная где-то с gcc-8, пришлось в makefile'ы добавлять "-Wno-trampolines", иначе мой код просто не собирается: с какого-то перепоя авторы gcc решили, что вложенные функции недопустимы! А между тем, вложенные функции во многих случаях - единственное удобное решение, позволяющее не париться с параметрами (недостающая часть параметров берется из аргументов и переменных родительской функции) и не тратиться слишком сильно на размер кода (как в случае с static inline, что иной раз не очень хорошо для МК).
Ответить