xtd 0.2.0
Loading...
Searching...
No Matches
type_object.h
Go to the documentation of this file.
1
4#pragma once
5#include "iequatable.h"
6#include "object.h"
7#include "type.h"
8#include "string.h"
9
11namespace xtd {
12 class type_object;
13
14 namespace __s__ {
15 template<typename type_t> xtd::type_object __typeof_() noexcept;
16 template<typename type_t> xtd::type_object __typeof_(const type_t& value) noexcept;
17 xtd::type_object __typeof_(const xtd::type& value) noexcept;
18 }
19}
21
22
24namespace xtd {
26
39 class type_object : public object, public xtd::iequatable<type_object> {
40 public:
42 type_object(const type_object&) noexcept = default;
43 type_object& operator=(const type_object&) noexcept;
45
51 xtd::string full_name() const noexcept;
52
56 xtd::string name() const noexcept;
57
61 xtd::string namespace_() const noexcept;
63
64 using object::equals;
67 bool equals(const type_object& type) const noexcept override;
68
69 xtd::string to_string() const noexcept override;
71
72 private:
73 template<typename type_t>
74 friend type_object xtd::__s__::__typeof_() noexcept;
75 template<typename type_t>
76 friend type_object xtd::__s__::__typeof_(const type_t& value) noexcept;
77 friend type_object xtd::__s__::__typeof_(const xtd::type& value) noexcept;
78 friend class xtd::object;
79
80 type_object() noexcept;
81 type_object(const xtd::type& type) noexcept;
82
83 const xtd::type& type_;
84 };
86}
Represents text as a sequence of character units.
Definition basic_string.h:79
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:22
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:42
Represents type declarations: class types, interface types, array types, value types,...
Definition type_object.h:39
xtd::string full_name() const noexcept
Gets the fully qualified name of the type_object, including the namespace of the type_object.
std::type_info type
Stores information about a type.
Definition type.h:23
Contains xtd::iequatable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::object class.
Contains xtd::string alias.
Contains xtd::type type.