37    template<typename type_t> 
 
   41    template<
typename type_t> 
 
   43    template<
typename type_t> 
 
   82      return value_->equals(*
other.value_);
 
   85    string to_string() const noexcept
 override {
return has_value() ? value_->to_string() : 
"(null)";}
 
   89    void reset() noexcept {value_.reset();}
 
  103      value_ = std::move(
other.value_);
 
  109    template<
typename type_t>
 
  110    inline ptr<object> boxing_ptr(
const type_t& 
value) 
noexcept {
return new_ptr<typename __box_enum_or_object__<type_t, typename std::is_enum<type_t>::type>
::type>(
value);}
 
  111    template<
typename type_t, 
typename ...args_t>
 
  112    inline ptr<object> boxing_ptr(args_t&& ...args) 
noexcept {
return new box<type_t>(args...);}
 
  114    inline ptr<object> boxing_ptr(
const char* 
value) 
noexcept {
return new_ptr<string>(
value);}
 
  115#if defined(__xtd__cpp_lib_char8_t) 
  116    inline ptr<object> boxing_ptr(
const char8* 
value) 
noexcept {
return  new_ptr<string>(
value);}
 
  118    inline ptr<object> boxing_ptr(
const char16* 
value) 
noexcept {
return new_ptr<string>(
value);}
 
  119    inline ptr<object> boxing_ptr(
const char32* 
value) 
noexcept {
return new_ptr<string>(
value);}
 
  120    inline ptr<object> boxing_ptr(
const wchar* 
value) 
noexcept {
return new_ptr<string>(
value);}
 
  121    inline ptr<object> boxing_ptr(
const char& 
value) 
noexcept {
return new_ptr<char_object>(
value);}
 
  122#if defined(__xtd__cpp_lib_char8_t) 
  123    inline ptr<object> boxing_ptr(
const char8& 
value) 
noexcept {
return new_ptr<char8_object>(
value);}
 
  125    inline ptr<object> boxing_ptr(
const char16& 
value) 
noexcept {
return new_ptr<char16_object>(
value);}
 
  126    inline ptr<object> boxing_ptr(
const char32& 
value) 
noexcept {
return new_ptr<char32_object>(
value);}
 
  127    inline ptr<object> boxing_ptr(
const wchar& 
value) 
noexcept {
return new_ptr<wchar_object>(
value);}
 
  128    inline ptr<object> boxing_ptr(
char& 
value) 
noexcept {
return new_ptr<char_object>(
value);}
 
  129#if defined(__xtd__cpp_lib_char8_t) 
  130    inline ptr<object> boxing_ptr(
char8& 
value) 
noexcept {
return new_ptr<char8_object>(
value);}
 
  132    inline ptr<object> boxing_ptr(
char16& 
value) 
noexcept {
return new_ptr<char16_object>(
value);}
 
  133    inline ptr<object> boxing_ptr(
char32& 
value) 
noexcept {
return new_ptr<char32_object>(
value);}
 
  134    inline ptr<object> boxing_ptr(
wchar& 
value) 
noexcept {
return new_ptr<wchar_object>(
value);}
 
  135    inline ptr<object> boxing_ptr(
const xtd::byte& 
value) 
noexcept {
return new_ptr<byte_object>(
value);}
 
  136    inline ptr<object> boxing_ptr(
const int16& 
value) 
noexcept {
return new_ptr<int16_object>(
value);}
 
  137    inline ptr<object> boxing_ptr(
const int32& 
value) 
noexcept {
return new_ptr<int32_object>(
value);}
 
  138    inline ptr<object> boxing_ptr(
const int64& 
value) 
noexcept {
return new_ptr<int64_object>(
value);}
 
  139    inline ptr<object> boxing_ptr(
const slong& 
value) 
noexcept {
return new_ptr<slong_object>(
value);}
 
  140    inline ptr<object> boxing_ptr(
const sbyte& 
value) 
noexcept {
return new_ptr<sbyte_object>(
value);}
 
  141    inline ptr<object> boxing_ptr(
const uint16& 
value) 
noexcept {
return new_ptr<uint16_object>(
value);}
 
  142    inline ptr<object> boxing_ptr(
const uint32& 
value) 
noexcept {
return new_ptr<uint32_object>(
value);}
 
  143    inline ptr<object> boxing_ptr(
const uint64& 
value) 
noexcept {
return new_ptr<uint64_object>(
value);}
 
  144    inline ptr<object> boxing_ptr(
const xtd::ulong& 
value) 
noexcept {
return new_ptr<ulong_object>(
value);}
 
  145    inline ptr<object> boxing_ptr(
xtd::byte& 
value) 
noexcept {
return new_ptr<byte_object>(
value);}
 
  146    inline ptr<object> boxing_ptr(
int16& 
value) 
noexcept {
return new_ptr<int16_object>(
value);}
 
  147    inline ptr<object> boxing_ptr(
int32& 
value) 
noexcept {
return new_ptr<int32_object>(
value);}
 
  148    inline ptr<object> boxing_ptr(
int64& 
value) 
noexcept {
return new_ptr<int64_object>(
value);}
 
  149    inline ptr<object> boxing_ptr(
slong& 
value) 
noexcept {
return new_ptr<slong_object>(
value);}
 
  150    inline ptr<object> boxing_ptr(
sbyte& 
value) 
noexcept {
return new_ptr<sbyte_object>(
value);}
 
  151    inline ptr<object> boxing_ptr(
uint16& 
value) 
noexcept {
return new_ptr<uint16_object>(
value);}
 
  152    inline ptr<object> boxing_ptr(
uint32& 
value) 
noexcept {
return new_ptr<uint32_object>(
value);}
 
  153    inline ptr<object> boxing_ptr(
uint64& 
value) 
noexcept {
return new_ptr<uint64_object>(
value);}
 
  154    inline ptr<object> boxing_ptr(
xtd::ulong& 
value) 
noexcept {
return new_ptr<ulong_object>(
value);}
 
  155    inline ptr<object> boxing_ptr(
const float& 
value) 
noexcept {
return new_ptr<single_object>(
value);}
 
  156    inline ptr<object> boxing_ptr(
const double& 
value) 
noexcept {
return new_ptr<double_object>(
value);}
 
  157    inline ptr<object> boxing_ptr(
const decimal& 
value) 
noexcept {
return new_ptr<decimal_object>(
value);}
 
  158    inline ptr<object> boxing_ptr(
float& 
value) 
noexcept {
return new_ptr<single_object>(
value);}
 
  159    inline ptr<object> boxing_ptr(
double& 
value) 
noexcept {
return new_ptr<double_object>(
value);}
 
  160    inline ptr<object> boxing_ptr(
decimal& 
value) 
noexcept {
return new_ptr<decimal_object>(
value);}
 
  161    inline ptr<object> boxing_ptr(std::nullptr_t 
value) 
noexcept {
return ptr<object> {};}
 
  167  template<
typename type_t, 
typename bool_t>
 
  168  struct __is_enum_any_object__ {};
 
  170  template<
typename type_t>
 
  171  struct __is_enum_any_object__<type_t, std::true_type> {
 
  172    bool operator()(
const any_object& o)
 const {
return is<enum_object<type_t>>(
o.value());}
 
  175  template<
typename type_t>
 
  176  struct __is_enum_any_object__<type_t, std::false_type> {
 
  177    bool operator()(
const any_object& o)
 const {
return false;}
 
  180  template<
typename type_t, 
typename bool_t>
 
  181  struct __is_polymorphic_any_object__ {};
 
  183  template<
typename type_t>
 
  184  struct __is_polymorphic_any_object__<type_t, std::true_type> {
 
  185    bool operator()(
const any_object& o)
 const {
return is<type_t>(
o.value());}
 
  188  template<
typename type_t>
 
  189  struct __is_polymorphic_any_object__<type_t, std::false_type> {
 
  190    bool operator()(
const any_object& o)
 const {
return __is_enum_any_object__<type_t, typename std::is_enum<type_t>::type> {}(
o);}
 
  193  template<
typename type_t>
 
  194  bool is(any_object& 
o) {
 
  195    if (
is<box<type_t>>(
o.value())) 
return true;
 
  196    return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type> {}(
o);
 
  199  template<
typename type_t>
 
  200  bool is(
const any_object& 
o) {
 
  201    if (
is<box<type_t>>(
o.value())) 
return true;
 
  202    return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type> {}(
o);
 
  205  template<
typename type_t>
 
  206  bool is(any_object* 
o) {
 
  207    if (
is<box<type_t>>(
o->value())) 
return true;
 
  208    return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type> {}(*o);
 
  211  template<
typename type_t>
 
  212  bool is(
const any_object* 
o) {
 
  213    if (
is<box<type_t>>(
o->value())) 
return true;
 
  214    return __is_polymorphic_any_object__<type_t, typename std::is_polymorphic<type_t>::type> {}(*o);
 
Contains xtd::boxing methods.
 
Represent a polymorphic wrapper capable of holding any type.
Definition any_object.hpp:28
 
any_object(type_t &value) noexcept
Initializes a new instance of the xtd::any_object class with specified value.
Definition any_object.hpp:42
 
string to_string() const noexcept override
Returns a xtd::string that represents the current object.
Definition any_object.hpp:85
 
bool equals(const any_object &other) const noexcept override
Indicates whether the current object is equal to another object of the same type.
Definition any_object.hpp:79
 
bool equals(const object &other) const noexcept override
Determines whether the specified object is equal to the current object.
Definition any_object.hpp:78
 
void reset() noexcept
Reset the current object. Set the current object to null.
Definition any_object.hpp:89
 
bool has_value() const noexcept
Gets a value indicating whether the current xtd::any_object object has a valid value of its underlyin...
Definition any_object.hpp:59
 
any_object() noexcept=default
Initializes a new instance of the xtd::any_object class.
 
any_object & operator=(const any_object &other)=default
Copy assignment operator. Replaces the contents with a copy of the contents of other.
 
int32 compare_to(const any_object &other) const noexcept override
Compares the current instance with another object of the same type.
Definition any_object.hpp:73
 
xtd::size get_hash_code() const noexcept override
Serves as a hash function for a particular type.
Definition any_object.hpp:84
 
const object & value() const
Gets the value of the current xtd::any_object object if it has been assigned a valid underlying value...
Definition any_object.hpp:64
 
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:21
 
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
 
The exception that is thrown when the format of an argument does not meet the parameter specification...
Definition invalid_operation_exception.hpp:19
 
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:42
 
int16_t int16
Represents a 16-bit signed integer.
Definition int16.hpp:23
 
char8_t char8
Represents a 8-bit unicode character.
Definition char8.hpp:27
 
xtd::sptr< type_t > ptr
The xtd::ptr object is a shared pointer.
Definition ptr.hpp:27
 
wchar_t wchar
Represents a wide character.
Definition wchar.hpp:24
 
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
 
long double decimal
Represents a decimal-precision floating-point number.
Definition decimal.hpp:23
 
int64_t int64
Represents a 64-bit signed integer.
Definition int64.hpp:23
 
null_ptr null
Represents a null pointer value.
 
__ulong__ ulong
Represents a 32-bit or 64-bit unsigned integer.
Definition ulong.hpp:27
 
int8_t sbyte
Represents a 8-bit signed integer.
Definition sbyte.hpp:23
 
char16_t char16
Represents a 16-bit unicode character.
Definition char16.hpp:26
 
uint32_t uint32
Represents a 32-bit unsigned integer.
Definition uint32.hpp:23
 
size_t size
Represents a size of any object in bytes.
Definition size.hpp:23
 
char32_t char32
Represents a 32-bit unicode character.
Definition char32.hpp:26
 
uint64_t uint64
Represents a 64-bit unsigned integer.
Definition uint64.hpp:23
 
uint8_t byte
Represents a 8-bit unsigned integer.
Definition byte.hpp:23
 
uint16_t uint16
Represents a 16-bit unsigned integer.
Definition uint16.hpp:23
 
__slong__ slong
Represents a 32-bit or 64-bit signed integer.
Definition slong.hpp:27
 
std::type_info type
Stores information about a type.
Definition type.hpp:23
 
bool is(std::any value)
Checks if the result of an expression is compatible with a given type.
Definition is.hpp:365
 
@ other
The operating system is other.
 
Contains xtd::collections::generic::helpers::comparer struct.
 
Contains xtd::icomparable interface.
 
Contains xtd::iequatable interface.
 
Contains xtd::invalid_operation_exception exception.
 
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
 
Contains xtd::object class.
 
Implements a function object for compare data.
Definition comparer.hpp:36