Я собираюсь написать библиотеку C++, которая будет использоваться как приложением Windows, так и на Symbian. Linux не является текущим требованием, но, как правило, также возможен.
По этой причине я хотел бы использовать соглашения об именах STL/Boost вместо Symbian's, которые, как мне кажется, трудно привыкнуть.
Это похоже на проблему при компиляции кода с помощью Carbide.C++, поскольку он обеспечивает соблюдение соглашения об именах Symbian.Как обойти соглашения об именах Symbian?
Как я могу использовать «обычные» имена и по-прежнему поддерживаю совместимость с Symbian? Я сначала подумал об условно #define
-именование имен классов для платформы Symbian, но я боюсь, что это приведет к путанице.
Не могли бы возникнуть другие проблемы, не соблюдая соглашение об именах Symbian?
Какие соглашения применяются? Если он заставляет имена классов начинаться с C, то это довольно поддельно, и если вы не можете его отключить, не используйте Carbide. Вам придется писать свои собственные файлы mmp, но это еще не конец света. Если это просто флаг, оставляющий функции, тогда это верно, ваш кросс-платформенный клиентский API не должен уходить, не так ли? Или это будет документировано, «эта функция выходит на Symbian, но выдает исключение в Windows»? Я думаю, что это плохая идея: просто предложите два интерфейса для вашей библиотеки, если поведение отличается. –
На самом деле я не знаю, какие соглашения он применяет. Мой коллега, который будет делать специфические вещи для Symbian, сказал мне, что мы лучше соглашаемся с конвенцией, иначе могут произойти странные вещи. Он тоже не специалист по Symbian. Мы просто пытаемся повторно использовать код, который уже работает на Symbian, и сделать его полезным в другом месте. – foraidt