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

Про байтики и логику ЭБУ
Post Reply
User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Thu Dec 19, 2013 7:28 pm

Мы тут немного уже страдаем от бедности нашего языка С. С учётом того, что мы качество кода ставим одним из важнейших приоритетов - возникла мысль посмотреть в сторону С++.

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

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

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

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

Мне идея С++ нравится всё больше и больше, но у меня список задач на месяц программинга :( Мне с этим нужна помощь.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

mpro
contributor
contributor
Posts: 64
Joined: Sun Nov 10, 2013 8:31 pm
Location: Moscow

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

Post by mpro » Fri Dec 20, 2013 1:29 pm

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

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

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

Post by Sergey89 » Fri Dec 20, 2013 8:06 pm

Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.

User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Fri Dec 20, 2013 8:17 pm

Sergey89 wrote:Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
Куча это очень рискованно, так что кучи у нас не будет точно.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Sat Dec 21, 2013 1:51 am

В полном дистрибутиве ChibiOS есть демка ChibiOS_2.6.1\demos\ARMCM4-STM32F407-DISCOVERY-G++ - там как раз main.cpp
Как-то вроде ничего страшного.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Sat Mar 08, 2014 9:39 am

Итого: https://sourceforge.net/p/rusefi/tickets/33/ сделан, у нас появился первый объект - так что технических проблем нет, С++ без динамической памяти скомпилировался и работает.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by Maxi » Sat Mar 08, 2014 12:04 pm

Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?

puff
contributor
contributor
Posts: 2734
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

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

Post by puff » Sat Mar 08, 2014 12:15 pm

у человека красота - критерий истины :D

User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Sat Mar 08, 2014 2:18 pm

Maxi wrote:Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
Да и ассемблер не ограничивает разработку, можно и на ассемблере.

С с плюсом чуть-чуть элегантнее, а есть он при этом особо не просит - так что почему нет?
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by rus084 » Sat Mar 08, 2014 2:38 pm

ну хотя да :

Code: Select all

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

User avatar
russian
Site Admin
Posts: 9746
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by russian » Sat Mar 08, 2014 2:40 pm

Дима, ты не прав - твой пример не про код, а про заголовки. А заголовки это в любом случай ужас :)

И от этого можно уйти, если переименовать все файлы в .cpp :) Однажды до этого дойтут руки, и этого шайтана не будет - но сейчас избавляться от этого мы времени тратить не будем.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol
Soldering skill: yes
Coding skill?: yes
Contact:

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

Post by rus084 » Sat Mar 08, 2014 2:44 pm

а зачем торопиться? никуда ничего не денется

Post Reply