#ifndef TAG_PARSER_LOCALEAWARESTRING_H #define TAG_PARSER_LOCALEAWARESTRING_H #include "./global.h" #include #include namespace TagParser { /*! * \brief The LocaleAwareString class is a standard string with locale information (languages, countries). */ class TAG_PARSER_EXPORT LocaleAwareString : public std::string { public: explicit LocaleAwareString(const std::string &value = std::string()); explicit LocaleAwareString(std::string &&value); ~LocaleAwareString(); const std::vector &languages() const; std::vector &languages(); const std::vector &countries() const; std::vector &countries(); private: std::vector m_languages; std::vector m_countries; }; /*! * \brief Constructs a new LocaleAwareString from the specified standard string. */ inline LocaleAwareString::LocaleAwareString(const std::string &value) : std::string(value) { } /*! * \brief Constructs a new LocaleAwareString from the specified standard string. */ inline LocaleAwareString::LocaleAwareString(std::string &&value) : std::string(value) { } /*! * \brief Destroys the instance. */ inline LocaleAwareString::~LocaleAwareString() { } /*! * \brief Returns associated languages. */ inline const std::vector &LocaleAwareString::languages() const { return m_languages; } /*! * \brief Returns associated languages. */ inline std::vector &LocaleAwareString::languages() { return m_languages; } /*! * \brief Returns associated countries. */ inline const std::vector &LocaleAwareString::countries() const { return m_countries; } /*! * \brief Returns associated countries. */ inline std::vector &LocaleAwareString::countries() { return m_countries; } } // namespace TagParser #endif // TAG_PARSER_LOCALEAWARESTRING_H