LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

А можно узнать - каких? В первую очередь конечно в контексте именно микроконтроллеров,с их ограничениями как по общему размеру кода так и по размеру доступного ОЗУ.

Почти все его фичи решают какие-то проблемы, при этом не добавляя лишний код, т.к. его принцип это абстракции с нулевой ценой. Шаблоны, классы. С исключениями не уверен, тут надо считать, но их можно отключить. Разве что время компиляции в C++ это ненулевая цена, которую придётся платить за абстракции. Но если писать с включенной головой, то это не проблема. Я работал с кодом уважаемого Столярова ещё 15 лет назад на куда более слабом компьютере и C++ проект в несколько десятков тысяч строк компилировался менее чем за секунду, потому, что человек умеет писать на C++ правильно.

Банально хочешь сделать кольцевой буфер. На C это будет struct плюс несколько методов, принимающих указатель на структуру первым аргументом. Например тут. Ещё порой и макросами сдобренных, т.к. встроенных средств C не хватает. А на C++ будет обычный класс, который несколько проще использовать, чем такой набор. Или рядом queue. Типизированная очередь. На C это макрос NRF_QUEUE_DEF(_type, _name, _size, _mode), разворачивающийся в огромную простыню из структур и функций. На C++ это будет простенький класс с шаблонорм. Причём в обоих случаях на C++ это будет работать абсолютно так же, как и на C в плане производительности. А вот в плане написания, поддержки и использования такого кода C++ выиграет.

Исправление vbr, :

А можно узнать - каких? В первую очередь конечно в контексте именно микроконтроллеров,с их ограничениями как по общему размеру кода так и по размеру доступного ОЗУ.

Почти все его фичи решают какие-то проблемы, при этом не добавляя лишний код, т.к. его принцип это абстракции с нулевой ценой. Шаблоны, классы. С исключениями не уверен, тут надо считать, но их можно отключить.

Банально хочешь сделать кольцевой буфер. На C это будет struct плюс несколько методов, принимающих указатель на структуру первым аргументом. Например тут. Ещё порой и макросами сдобренных, т.к. встроенных средств C не хватает. А на C++ будет обычный класс, который несколько проще использовать, чем такой набор. Или рядом queue. Типизированная очередь. На C это макрос NRF_QUEUE_DEF(_type, _name, _size, _mode), разворачивающийся в огромную простыню из структур и функций. На C++ это будет простенький класс с шаблонорм. Причём в обоих случаях на C++ это будет работать абсолютно так же, как и на C в плане производительности. А вот в плане написания, поддержки и использования такого кода C++ выиграет.

Исходная версия vbr, :

А можно узнать - каких? В первую очередь конечно в контексте именно микроконтроллеров,с их ограничениями как по общему размеру кода так и по размеру доступного ОЗУ.

Почти все его фичи решают какие-то проблемы, при этом не добавляя лишний код, т.к. его принцип это абстракции с нулевой ценой. Шаблоны, классы. С исключениями не уверен, тут надо считать, но их можно отключить.

Банально хочешь сделать кольцевой буфер. На C это будет struct плюс несколько методов, принимающих указатель на структуру первым аргументом. Например тут. Ещё порой и макросами сдобренных, т.к. встроенных средств C не хватает. А на C++ будет обычный класс, который несколько проще использовать, чем такой набор. Или рядом queue. Типизированная очередь. На C это макрос NRF_QUEUE_DEF(_type, _name, _size, _mode), разворачивающийся в огромную простыню из структур и функций. На C++ это будет простенький класс с шаблонорм. Причём в обоих случаях на C++ это будет работать абсолютно так же, как и на C в плане производительности. А вот в плане написания, поддержки и использования такого кода C++ выиграет.