Перейти к содержанию
    

ARM Compiler 6 (LLVM/CLang): можно ли компилировать несколько файлов как один?

2 минуты назад, jcxz сказал:

Тогда костыльный вариант: пропустить IP-фреймы с UDP мимо lwIP. Выкусив их из потока Ethernet-кадров от MAC до входа в lwIP. И обработав их самостоятельно.

Обработка чисто UDP - совсем уж простая. На одном этом другие тараканы, в ваших тараканьих бегах, устраиваемых заказчиком, вас не обгонят.  :wink:

Насколько я помню, в LwIP даже есть специальное ветвление, где вызывается callback() в обход дебрей стека. Осталось проверить, насколько быстро он так работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как бы то ни было, но если класс обширнее, чем показанный ранее Tkey, то идея расписывать реализации методов прямо там внутри - далеко не лучшая по соображениям визуального восприятия, и без doxygen-сопроводиловки или вынесенных наверх комментов, будет сложно уловить интерфейс класса (напоминаю, что интерфейс в данном случае - это программный инструментарий взаимодействия). 
В этом смысле в плюсАх был выбран крайне провальный метод описания интерфейса программного модуля. Ну что поделать - плюсЫ вообще отличаются недоразвитостью, так сказать, это факт 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, EdgeAligned said:

Ну что поделать - плюсЫ вообще отличаются недоразвитостью, так сказать, это факт

В этом плане C# гораздо выигрышнее, ждем его на смену плюсам ... ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, EdgeAligned сказал:

будет сложно уловить интерфейс класса

Можно запросто организовать интерфейс и в том виде как вы его имеете в виду. Было бы желание/необходимрсть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, VladislavS сказал:

Можно запросто организовать интерфейс и в том виде как вы его имеете в виду. Было бы желание/необходимрсть.

// .hpp
class Abstract {
  public:
    void pure() = 0;
    void func();
};

// тут же ниже
void Abstract::func() {
  ...
}

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По-правде говоря, интерфейсом класса является то, что описано в public-области, потому что она предоставляет методы и поля взаимодействия с описанным классом. Концепты же, это просто наспех примазанная на сопли заплатка на шаблоны 🙂 

Я ж говорю, ++ является довольно недоразвитым языком в области ООП. И каждый пересмотр стандарта языка в общем то практически и не справляет недостатки, а просто пришлепывает очередную заплатку на дыру. Ну, это ИМХО, если посмотреть трезво со стороны на проблемы языка. Ну а что делать то? Приходится терпеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, EdgeAligned сказал:

интерфейсом класса является то, что описано в public-области

Не только! И при желании можно организовать читаемую открытую секцию с интерфейсом и закрытую с реализацией.

 

3 минуты назад, EdgeAligned сказал:

Концепты же, это просто наспех примазанная на сопли заплатка на шаблоны

Шаблонные параметры класса это тоже его интерфейс и концепты позволяют с ними работать.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При желании? Ну дак а я о чем ранее и говорил. Только это делается не так, как вы показали. Как вы показали - это худший в этом смысле вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Две страницы назад я показывал пример как в заголовочном файле размещается код без создания дополнительных единиц трансляции. О чем, собственно, этот топик и есть. Ничего общего с примером организации интерфейса класса он не имеет. Это плод вашей фантазии. В классе на пол экрана кода всего с двумя открытыми методами выделять интерфейс нет никакого смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно про это я и сказал - когда есть пара штук методов, это еще кое-как можно терпеть, покрутив колесиком портянку, но когда вот поболее будет сущностей там, то такой подход уже будет дурно пахнуть. И уж тем более, что вынести из описания класса методы можно в ЭТОТ ЖЕ САМЫЙ файл, что визуально будет более аккуратным в плане восприятия интерфейса класса. Такой вот расклад. Учитесь мыслить ширше и глубжее, чем однажды выученное вами - это пригодится, когда шагнете выше ног 🙂 (извините, если задел ваше ЧСВ, не кипятитесь попусту)

И уж тем более, что (повторюсь) тема темы была в диаметрально противоположном - не запихать всё в один файл, а наоборот, разнести. Как делать в одном файле - любой дурак знает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, EdgeAligned сказал:

тема темы была в диаметрально противоположном - не запихать всё в один файл, а наоборот, разнести

Именно это я и показываю. Разносим классы по заголовочным файлам не увеличивая количество единиц трансляции. Что положительно сказывается на оптимизации - хочешь на скорость, хочешь на объём.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тема себя исчерпала и была закрыта. Для частных обсуждений всегда есть ЛС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...