39 template<typename type_t>
43 template<
typename type_t>
47 template<
typename type_t>
51 template<xtd::
character type_t>
55 template<xtd::
character type_t>
71 [[nodiscard]] auto
has_value() const noexcept ->
bool;
76 [[nodiscard]] auto
value() const -> const
object&;
97 [[nodiscard]] auto
equals(const
object& other) const noexcept ->
bool override;
130 template<typename type_t>
132 template<
typename type_t,
typename ...args_t>
133 [[nodiscard]]
auto boxing_ptr(args_t&& ...args)
noexcept ->
ptr<object> {
return new box<type_t>(args...);}
176 [[nodiscard]]
auto boxing_ptr(std::nullptr_t
value)
noexcept ->
ptr<object>;
182 template<
typename type_t,
typename bool_t>
183 struct __is_enum_any_object__ {};
185 template<
typename type_t>
186 struct __is_enum_any_object__<type_t, std::true_type> {
187 [[nodiscard]]
auto operator()(
const any_object& o)
const ->
bool {
return is<enum_object<type_t>>(
o.value());}
190 template<
typename type_t>
191 struct __is_enum_any_object__<type_t, std::false_type> {
192 [[nodiscard]]
auto operator()(
const any_object& o)
const ->
bool {
return false;}
195 template<
typename type_t,
typename bool_t>
196 struct __is_polymorphic_any_object__ {};
198 template<
typename type_t>
199 struct __is_polymorphic_any_object__<type_t, std::true_type> {
200 [[nodiscard]]
auto operator()(
const any_object& o)
const ->
bool {
return is<type_t>(
o.value());}
203 template<
typename type_t>
204 struct __is_polymorphic_any_object__<type_t, std::false_type> {
205 [[nodiscard]]
auto operator()(
const any_object& o)
const ->
bool {
return __is_enum_any_object__<type_t, typename std::is_enum<type_t>::type> {}(
o);}
208 template<
typename type_t>
209 requires (!std::is_null_pointer_v<type_t> )
211 if (!
o.has_value())
return false;
213 return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type > {}(
o);
216 template<
typename type_t>
217 requires (!std::is_null_pointer_v<type_t> )
219 if (!
o.has_value())
return false;
221 return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type > {}(
o);
258 template<
typename type_t>
259 requires std::is_null_pointer_v<type_t>
261 return !
o.has_value();
264 template<
typename type_t>
265 requires std::is_null_pointer_v<type_t>
267 return !
o.has_value();
270 template<
typename type_t>
273 return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type > {}(*o);
276 template<
typename type_t>
279 return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type > {}(*o);
Contains xtd::boxing methods.
Contains xtd::character concept.
Represent a polymorphic wrapper capable of holding any type.
Definition any_object.hpp:30
any_object(const type_t &value) noexcept
Initializes a new instance of the xtd::any_object class with specified value.
Definition any_object.hpp:48
any_object(type_t &value) noexcept
Initializes a new instance of the xtd::any_object class with specified value.
Definition any_object.hpp:44
auto get_hash_code() const noexcept -> xtd::usize override
Serves as a hash function for a particular type.
auto equals(const object &other) const noexcept -> bool override
Determines whether the specified object is equal to the current object.
auto compare_to(const any_object &other) const noexcept -> int32 override
Compares the current instance with another object of the same type.
any_object(type_t *value) noexcept
Initializes a new instance of the xtd::any_object class with specified value.
Definition any_object.hpp:56
auto to_string() const noexcept -> xtd::string override
Returns a xtd::string that represents the current object.
auto value() const -> const object &
Gets the value of the current xtd::any_object object if it has been assigned a valid underlying value...
any_object() noexcept=default
Initializes a new instance of the xtd::any_object class.
auto has_value() const noexcept -> bool
Gets a value indicating whether the current xtd::any_object object has a valid value of its underlyin...
auto reset() noexcept -> void
Reset the current object. Set the current object to null.
any_object(const type_t *value) noexcept
Initializes a new instance of the xtd::any_object class with specified value.
Definition any_object.hpp:52
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:22
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:23
object()=default
Create a new instance of the ultimate base class object.
Contains xtd::enum_object struct.
Contains xtd::collections::generic::helpers::comparer struct.
std::type_info type
Stores information about a type.
Definition type.hpp:23
std::int64_t int64
Represents a 64-bit signed integer.
Definition int64.hpp:23
std::uint32_t uint32
Represents a 32-bit unsigned integer.
Definition uint32.hpp:23
char8_t char8
Represents a 8-bit unicode character.
Definition char8.hpp:26
__slong__ slong
Represents a 32-bit or 64-bit signed integer.
Definition slong.hpp:27
std::int8_t sbyte
Represents a 8-bit signed integer.
Definition sbyte.hpp:23
wchar_t wchar
Represents a wide character.
Definition wchar.hpp:24
__ulong__ ulong
Represents a 32-bit or 64-bit unsigned integer.
Definition ulong.hpp:27
long double decimal
Represents a decimal-precision floating-point number.
Definition decimal.hpp:23
std::uint16_t uint16
Represents a 16-bit unsigned integer.
Definition uint16.hpp:23
char16_t char16
Represents a 16-bit unicode character.
Definition char16.hpp:26
std::int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:25
xtd::sptr< type_t > ptr
The xtd::ptr object is a shared pointer.
Definition ptr.hpp:27
std::int16_t int16
Represents a 16-bit signed integer.
Definition int16.hpp:23
std::uint64_t uint64
Represents a 64-bit unsigned integer.
Definition uint64.hpp:23
std::size_t usize
Represents an unsigned size of any object in bytes.
Definition usize.hpp:22
std::uint8_t byte
Represents a 8-bit unsigned integer.
Definition byte.hpp:23
char32_t char32
Represents a 32-bit unicode character.
Definition char32.hpp:23
auto is(xtd::any value) -> bool
Checks if the result of an expression is compatible with a given type.
Definition is.hpp:485
auto new_ptr(args_t &&... args) -> xtd::ptr< type_t >
The xtd::new_ptr operator creates a xtd::ptr object.
Definition new_ptr.hpp:24
@ o
The O key.
Definition console_key.hpp:116
Contains xtd::icomparable interface.
Contains xtd::iequatable interface.
Contains xtd::integer concept.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
auto operator()(size_type index) const -> const_reference
Gets the element at the specified zero-based index.
Definition read_only_span.hpp:401
Contains xtd::object class.
Represents a boxed object.
Definition box.hpp:55
box()=default
Initialize a new xtd::box object.