35 bool is_experimental_language()
const noexcept {
return language() != experimental_language();}
37 bool is_supported()
const noexcept {
return cpp_ >= 201703L;}
49 language_id experimental_language()
const noexcept {
59 int32_t month()
const noexcept {
return cpp_ % 100;}
62 static std::map<language_id, xtd::ustring> names {{
language_id::cpp_pre98,
"C++ Pre 98"}, {
language_id::cpp98,
"C++ 98"}, {
language_id::cpp11,
"C++ 11"}, {
language_id::cpp14,
"C++ 14"}, {
language_id::cpp17,
"C++ 17"}, {
language_id::cpp20,
"C++ 20"}, {
language_id::unknown,
"<unknown>"}};
63 if (is_experimental_language())
return ustring::format(
"Experimental {}", names[experimental_language()]);
64 return names[language()];
67 uint32_t value()
const noexcept {
return cpp_;}
78 int32_t year()
const noexcept {
return cpp_ / 100;}
85 uint32_t cpp_ = __cplusplus;
Represents information about c++ libraries, such as the version and language identifier....
Definition: cpp_language.h:24
xtd::ustring to_string() const noexcept
Converts the value of this operating_system object to its equivalent string representation.
Definition: cpp_language.h:82
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition: version.h:93
language_id
Identifies the c++ language used by assembly.
Definition: language_id.h:16
@ cpp14
The language is c++14.
@ cpp98
The language is c++98.
@ cpp20
The language is c++20.
@ cpp_pre98
The language is pre 98.
@ unknown
The language is unknown.
@ cpp11
The language is c++11.
@ cpp17
The language is c++17.
Contains xtd::language_id enum class.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::object class.
Contains xtd::ustring class.
Contains xtd::version class.