LINUX.ORG.RU

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

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

Макросы - харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции. Дополнительную инфу для вспомогательных функций можно разместить в комментариях у мемберов структур.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции. Но тут будет ваша ide с ума сходить, т.к. изначально у нее не будет объявлений тех структур, с которыми вы в коде работаете.

PS тред не читал

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

Макросы - харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции. Дополнительную инфу для вспомогательных функций можно разместить в комментариях у мемберов структур.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции. Но тут будет ваша ide с ума сходить, т.к. изначально у нее не будет объявлений тех структур, с которыми вы в коде работаете.

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

Макросы - это харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции. Дополнительную инфу для вспомогательных функций можно разместить в комментариях у мемберов структур.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции. Но тут будет ваша ide с ума сходить, т.к. изначально у нее не будет объявлений тех структур, с которыми вы в коде работаете.

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

Макросы - это харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции. Дополнительную инфу для вспомогательных функций можно разместить в комментариях у мемберов структур.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции. Но тут будет ваша ide с ума сходить, т.к. изначально у нее будет объявлений тех структур, с которыми вы в коде работаете.

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

Макросы - это харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции. Но тут будет ваша ide с ума сходить, т.к. изначально у нее будет объявлений тех структур, с которыми вы в коде работаете.

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

Макросы - это харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур, и вспомогательные функции.

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

Макросы - это харам и говно.
Шаблонятина - тормоза при компиляции.

Единственный остающийся вариант - кодогенерация во время сборки.

Если сборочная среда позволяет такую роскошь (условный libclang-for-pip), то парсить си-шные объявления структур и генерировать всякие вспомогательные функции.

Если в сборочную среду парсер с++ не втащить, то структуры изначально описывать на каком-то промежуточном языке (например, по мотивам swagger), и из него генерировать и си-шные объявления структур и вспомогательные функции.