Page 1 of 1

А не попробовать ли на нам С++?

Posted: Thu Dec 19, 2013 7:28 pm
by AndreyB
Мы тут немного уже страдаем от бедности нашего языка С. С учётом того, что мы качество кода ставим одним из важнейших приоритетов - возникла мысль посмотреть в сторону С++.

Нужно понимать, что если С++ условно говоря 10 различий от С - мы не обязаны обязательно бросаться и использовать ВСЕ фичи С++. Я пока вижу С++ просто как бесплатное (на уровне откомпилированного кода разницы нет) улучшение синтаксиса. Например, как у нас не было кучи/heap/менеджера памяти - так у нас этого и не будет пока. Однако связать структуры и функции в объекты например хотелось бы.

С++ как минимум стоит изучить, кому-то однажды.
https://sourceforge.net/p/rusefi/tickets/33/

Есть мнение, что С++ мы можем получить не особо напрягаясь. ChibiOS точно готов к C++. Поэтому чем обсуждать как именно ходить по полю граблей С, можно и правда соскочить на С++.

Если кто-то попробует озвучить 'гениальное' мнение, что мы на этом потеряем три такта - я буду громко ругаться.

Мне идея С++ нравится всё больше и больше, но у меня список задач на месяц программинга :( Мне с этим нужна помощь.

Re: А не попробовать ли на нам С++?

Posted: Fri Dec 20, 2013 1:29 pm
by mpro
Я являюсь фанатом ООП но нам оно нужно как собаке пятая нога.
Почему? Наверное потому что ООП без наследования и полиморфизма не имеет смысла.
Его элементарно заменить на "соглашение о вызовах" и/или хранение нужную информации в одной глобальной структуре.
Зачем на виртуальные методы? Зачем наследование? Оно было бы полезым в чиби с его конструкцией vmt, но не на нашем уровне.
Я прошу прощения конечно, но пока я даже банального мэнеджера памяти не вижу (угу, С++, без работы с кучей?). Точнее вижу его в каком то виде в исходниках чиби и почти полное отсутствие использования в прошивке.

Re: А не попробовать ли на нам С++?

Posted: Fri Dec 20, 2013 8:06 pm
by Sergey89
Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.

Re: А не попробовать ли на нам С++?

Posted: Fri Dec 20, 2013 8:17 pm
by AndreyB
Sergey89 wrote:Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
Куча это очень рискованно, так что кучи у нас не будет точно.

Re: А не попробовать ли на нам С++?

Posted: Sat Dec 21, 2013 1:51 am
by AndreyB
В полном дистрибутиве ChibiOS есть демка ChibiOS_2.6.1\demos\ARMCM4-STM32F407-DISCOVERY-G++ - там как раз main.cpp
Как-то вроде ничего страшного.

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 9:39 am
by AndreyB
Итого: https://sourceforge.net/p/rusefi/tickets/33/ сделан, у нас появился первый объект - так что технических проблем нет, С++ без динамической памяти скомпилировался и работает.

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 12:04 pm
by Maxi
Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 12:15 pm
by puff
у человека красота - критерий истины :D

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 2:18 pm
by AndreyB
Maxi wrote:Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
Да и ассемблер не ограничивает разработку, можно и на ассемблере.

С с плюсом чуть-чуть элегантнее, а есть он при этом особо не просит - так что почему нет?

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 2:38 pm
by rus084
ну хотя да :

Code: Select all

<c++ code>
extern "C" {
<C code>
}

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 2:40 pm
by AndreyB
Дима, ты не прав - твой пример не про код, а про заголовки. А заголовки это в любом случай ужас :)

И от этого можно уйти, если переименовать все файлы в .cpp :) Однажды до этого дойтут руки, и этого шайтана не будет - но сейчас избавляться от этого мы времени тратить не будем.

Re: А не попробовать ли на нам С++?

Posted: Sat Mar 08, 2014 2:44 pm
by rus084
а зачем торопиться? никуда ничего не денется