![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/locale/ |
Upload File : |
// // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_LOCALE_INFO_HPP_INCLUDED #define BOOST_LOCALE_INFO_HPP_INCLUDED #include <boost/locale/config.hpp> #ifdef BOOST_MSVC # pragma warning(push) # pragma warning(disable : 4275 4251 4231 4660) #endif #include <locale> #include <string> namespace boost { namespace locale { /// /// \brief a facet that holds general information about locale /// /// This facet should be always created in order to make all Boost.Locale functions work /// class BOOST_LOCALE_DECL info : public std::locale::facet { public: static std::locale::id id; ///< This member uniquely defines this facet, required by STL /// /// String information about the locale /// enum string_propery { language_property, ///< ISO 639 language id country_property, ///< ISO 3166 country id variant_property, ///< Variant for locale encoding_property, ///< encoding name name_property ///< locale name }; /// /// Integer information about locale /// enum integer_property { utf8_property ///< Non zero value if uses UTF-8 encoding }; /// /// Standard facet's constructor /// info(size_t refs = 0) : std::locale::facet(refs) { } /// /// Get language name /// std::string language() const { return get_string_property(language_property); } /// /// Get country name /// std::string country() const { return get_string_property(country_property); } /// /// Get locale variant /// std::string variant() const { return get_string_property(variant_property); } /// /// Get encoding /// std::string encoding() const { return get_string_property(encoding_property); } /// /// Get the name of the locale, like en_US.UTF-8 /// std::string name() const { return get_string_property(name_property); } /// /// True if the underlying encoding is UTF-8 (for char streams and strings) /// bool utf8() const { return get_integer_property(utf8_property) != 0; } #if defined (__SUNPRO_CC) && defined (_RWSTD_VER) std::locale::id& __get_id (void) const { return id; } #endif protected: /// /// Get string property by its id \a v /// virtual std::string get_string_property(string_propery v) const = 0; /// /// Get integer property by its id \a v /// virtual int get_integer_property(integer_property v) const = 0; }; } } #ifdef BOOST_MSVC #pragma warning(pop) #endif #endif // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4