Основные типы, предоставляемые в C ++ API

Я нацелен на Windows, но не вижу причин, по которым некоторый код API, который я пишу, не может использовать базовые типы C ++. Что я хочу сделать, так это предоставить методы, возвращающие строки и целые числа. В мире C # я d просто использовать строку и иметь строку Unicode, но в VC ++ у меня есть возможность использовать std :: string, std :: wstring или MFC / ATL CStrings.

Должен ли я просто использовать исключительно std :: wstring для поддержки юникода, или я могу использовать std :: string, который будет скомпилирован в юникод на основе моих настроек сборки? Я склоняюсь к последнему. Я бы предпочел предоставить методы Get [Item] AsCString () для моих объектов для других строковых типов.

Также должен ли я использовать size_t вместо целого числа?

API будет использоваться мной, и, возможно, будущий разработчик, работающий над графическим интерфейсом C ++. Это способ разделить проблемы. Мои предпочтения:

  • Интуитивность для других разработчиков.
  • Прямая совместимость с VC ++
  • Совместимость с другими компиляторами C ++
  • Производительность (меня это меньше беспокоит, но мне нужно время запуска для остальной части моего приложения)

Любые руководства приветствуются.

7
задан WTLNewbie 27 February 2011 в 19:24
поделиться