xtd 0.2.0
Loading...
Searching...
No Matches
xtd::box< type_t > Class Template Reference
Inheritance diagram for xtd::box< type_t >:
xtd::object xtd::icomparable< box< type_t > > xtd::iequatable< box< type_t > > xtd::iformatable xtd::interface xtd::comparison_operators< type_t, comparable_t > xtd::interface xtd::equality_operators< type_t, equatable_t > xtd::interface xtd::box_integer< type_t > xtd::box_char< type_t > xtd::box_floating_point< type_t >

Definition

template<typename type_t>
class xtd::box< type_t >

Represents a boxed object.

class box : public xtd::icomparable<box<type_t>>, public xtd::iequatable<box<type_t>>, public xtd::object
Represents a boxed object.
Definition box.hpp:53
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
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:42
Inheritance
xtd::objectxtd::box <type_t>
Implements
xtd::icomparable <>, xtd::iequatable <>
Header
#include <xtd/box>
Namespace
xtd
Library
xtd.core
Remarks
You can use xtd::box to represent a class or structure that does not inherit from xtd::object. Typically used for integral types.
Use xtd::boxing to box an object.
Use xtd::unboxing to unbox an object.
The boxed object must implement operator == and operator < because a xtd::box implement xtd::icomparable and xtd::iequatable interfaces.
For more information about types, see Native types, boxing and unboxing.
Examples
The following example shows how to create and use xtd::box<bool>.
auto stringer = [](const object& value) {return value.to_string();};
bool unboxed_object = true;
box<bool> boxed_object = unboxed_bool;
auto result = stringer(boxed_object);
console::write_line("result = {}", result); // Display: result = true;
const type_t & value() const noexcept
Gets the underlying value.
Definition box.hpp:85
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
Examples
generic_icollection.cpp, generic_ienumerable2.cpp, generic_ienumerator.cpp, and generic_ilist.cpp.

Public Types

using underlying_type = type_t
 

Public Constructors

 box ()=default
 Initialize a new xtd::box object.
 
 box (const type_t &value)
 Initialize a new xtd::box object with specified value.
 
template<typename ... args_t>
 box (args_t &&...args)
 Initialize a new xtd::box object with specified value.
 

Public Properties

const type_t & value () const noexcept
 Gets the underlying value.
 
type_t & value () noexcept
 Gets the underlying value.
 
boxvalue (const type_t &value)
 Sets de underlying value.
 

Opertors

 operator type_t () const noexcept
 

Public Methods

int32 compare_to (const box &value) const noexcept override
 Compares the current instance with another object of the same type.
 
bool equals (const object &obj) const noexcept override
 Determines whether the specified object is equal to the current object.
 
bool equals (const box &value) const noexcept override
 Indicates whether the current object is equal to another object of the same type.
 
xtd::string to_string () const noexcept override
 Returns a xtd::string that represents the current object.
 
xtd::string to_string (const xtd::string &format) const
 Converts the value of this instance to its equivalent string representation, using the specified format.
 
xtd::string to_string (const xtd::string &format, const std::locale &loc) const override
 Converts the value of this instance to its equivalent string representation, using the specified format, and locale.
 

Public Static Methods

static type_t parse (const xtd::string &value)
 Converts the string to its type_t equivalent.
 
static bool try_parse (const xtd::string &value, type_t &result) noexcept
 Converts the string to its type_t equivalent. A return value indicates whether the conversion succeeded or failed.
 

Additional Inherited Members

- Public Member Functions inherited from xtd::object
 object ()=default
 Create a new instance of the ultimate base class object.
 
virtual size_t get_hash_code () const noexcept
 Serves as a hash function for a particular type.
 
virtual type_object get_type () const noexcept
 Gets the type of the current instance.
 
template<typename object_t >
xtd::uptr< object_t > memberwise_clone () const
 Creates a shallow copy of the current object.
 
- Public Member Functions inherited from xtd::icomparable< box< type_t > >
- Public Member Functions inherited from xtd::iequatable< box< type_t > >
- Public Member Functions inherited from xtd::iformatable
- Static Public Member Functions inherited from xtd::object
template<typename object_a_t , typename object_b_t >
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
 
template<typename object_a_t , typename object_b_t >
static bool reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are the same instance.
 

Constructor & Destructor Documentation

◆ box() [1/3]

template<typename type_t >
xtd::box< type_t >::box ( )
default

Initialize a new xtd::box object.

◆ box() [2/3]

template<typename type_t >
xtd::box< type_t >::box ( const type_t &  value)
inline

Initialize a new xtd::box object with specified value.

Parameters
valueValue used to initialize object.

◆ box() [3/3]

template<typename type_t >
template<typename ... args_t>
xtd::box< type_t >::box ( args_t &&...  args)
inline

Initialize a new xtd::box object with specified value.

Parameters
...args_tParams used to initialize object.

Member Function Documentation

◆ value() [1/3]

template<typename type_t >
const type_t & xtd::box< type_t >::value ( ) const
inlinenoexcept

Gets the underlying value.

Returns
Return the underlying value.

◆ value() [2/3]

template<typename type_t >
type_t & xtd::box< type_t >::value ( )
inlinenoexcept

Gets the underlying value.

Returns
Return the underlying value.

◆ value() [3/3]

template<typename type_t >
box & xtd::box< type_t >::value ( const type_t &  value)
inline

Sets de underlying value.

Parameters
valueThe value to set to the underlying value.

◆ compare_to()

template<typename type_t >
int32 xtd::box< type_t >::compare_to ( const box< type_t > &  obj) const
inlineoverridevirtualnoexcept

Compares the current instance with another object of the same type.

Parameters
objAn object to compare with this instance.
Returns
A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
Value Condition
Less than zero This instance is less than obj.
Zero This instance is equal to obj.
Greater than zero This instance is greater than obj.

Implements xtd::icomparable< box< type_t > >.

◆ equals() [1/2]

template<typename type_t >
bool xtd::box< type_t >::equals ( const object obj) const
inlineoverridevirtualnoexcept

Determines whether the specified object is equal to the current object.

Parameters
objThe object to compare with the current object.
Returns
true if the specified object is equal to the current object. otherwise, false.
Examples
The following code example compares the current instance with another object.
#include <xtd/console>
using namespace xtd;
auto main() -> int {
auto object1 = new_ptr<object>();
auto object2 = new_ptr<object>();
auto object3 = object2;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
object3 = object1;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
}
// This code produces the following output :
//
// false
// false
// true
// true
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10

Reimplemented from xtd::object.

◆ equals() [2/2]

template<typename type_t >
bool xtd::box< type_t >::equals ( const box< type_t > &  ) const
inlineoverridevirtualnoexcept

Indicates whether the current object is equal to another object of the same type.

Parameters
objAn object to compare with this object.
Returns
true if the current object is equal to the other parameter; otherwise, false.

Implements xtd::iequatable< box< type_t > >.

◆ to_string() [1/3]

template<typename type_t >
xtd::string xtd::box< type_t >::to_string ( ) const
inlineoverridevirtualnoexcept

Returns a xtd::string that represents the current object.

Returns
A string that represents the current object.
Examples
The following code example demonstrates what to_string returns.
#include <xtd/xtd>
using namespace xtd;
namespace examples {
namespace object_test {
class object1 : public object {
};
}
}
auto main() -> int {
ptr<object> obj1 = new_ptr<examples::object_test::object1>();
console::write_line(obj1->to_string());
ptr<object> obj2 = new_ptr<date_time>(1971, 1, 5, 23, 5, 0);
console::write_line(obj2->to_string());
ptr<object> obj3 = new_ptr<boolean_object>();
console::write_line(obj3->to_string());
}
// This code produces the following output :
//
// examples::object_test::object1
// Tue Jan 5 23:05:00 1971
// false
xtd::sptr< type_t > ptr
The xtd::ptr object is a shared pointer.
Definition ptr.hpp:27

Reimplemented from xtd::object.

Examples
application_restart.cpp, console_out.cpp, and generic_ienumerable2.cpp.

◆ to_string() [2/3]

template<typename type_t >
xtd::string xtd::box< type_t >::to_string ( const xtd::string format) const
inline

Converts the value of this instance to its equivalent string representation, using the specified format.

Parameters
formatA value type format string.
Returns
The string representation of the value of this instance as specified by format.

◆ to_string() [3/3]

template<typename type_t >
xtd::string xtd::box< type_t >::to_string ( const xtd::string format,
const std::locale &  loc 
) const
inlineoverridevirtual

Converts the value of this instance to its equivalent string representation, using the specified format, and locale.

Parameters
formatA value type format string.
locAn std::locale object that contains locale information (see std::locale).
Returns
The string representation of the value of this instance as specified by format.

Implements xtd::iformatable.

◆ parse()

template<typename type_t >
static type_t xtd::box< type_t >::parse ( const xtd::string value)
inlinestatic

Converts the string to its type_t equivalent.

Parameters
valueA string containing a type_t to convert.
Returns
A type_t equivalent to the number contained in value.

◆ try_parse()

template<typename type_t >
static bool xtd::box< type_t >::try_parse ( const xtd::string value,
type_t &  result 
)
inlinestaticnoexcept

Converts the string to its type_t equivalent. A return value indicates whether the conversion succeeded or failed.

Parameters
valueA string containing a type_t to convert.
resultA type_t equivalent to the number contained in value.
Returns
true if s was converted successfully; otherwise, false.

The documentation for this class was generated from the following file: