Вопрос

Я собираюсь написать библиотеку C++, которая будет использоваться приложениями Windows, а также Symbian.Linux не является обязательным требованием в настоящее время, но, как правило, это тоже возможно.
По этой причине я хотел бы использовать соглашения об именах STL/Boost вместо Symbian, к которым, я думаю, трудно привыкнуть.
Кажется, это уже представляет проблему при компиляции кода с помощью Carbide.c++, поскольку он применяет соглашение об именах Symbian.

Как я могу использовать «обычные» имена и при этом быть совместимым с Symbian?Я сначала подумал об условно-пере-#define-ing имена классов для платформы Symbian, но я боюсь, что это приведет к путанице.

Могут ли возникнуть другие проблемы из-за несоблюдения соглашения об именах Symbian?

Это было полезно?

Решение

Соглашения по кодированию не являются строгими.Они созданы для того, чтобы нам, людям, было легче понимать код.Если вы пишете многоплатформенную библиотеку, не стесняйтесь использовать любое удобное вам соглашение.

Конечно, вашей библиотеке, вероятно, необходимо каким-то образом взаимодействовать с базовой операционной системой.С помощью Открытые библиотеки C/C++, вы можете делать многие вещи без необходимости использовать собственные API-интерфейсы Symbian C++ и их соглашения об именах.

В Carbide.c++ вы можете захотеть отключить статический анализ CodeScanner, поскольку он действительно полезен только для кода, написанного на родном Symbian C++.

Итак, вкратце, проблемы заключаются в следующем:

  • Люди, имеющие опыт работы с Symbian C++, не сразу знакомы с вашими соглашениями.
  • Использование собственных API-интерфейсов Symbian C++ может выявить некоторые особенности платформы (исключения или исключения).листья, ловушки, активные планировщики и т. д.)
  • Статические анализаторы, специфичные для Symbian, такие как CodeScanner, предполагают стиль кода Symbian C++ и могут генерировать ошибки/предупреждения, о которых вам действительно не нужно беспокоиться.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top