Shows how to use xtd::boxing methods.
#include <xtd/boxing>
#include <xtd/console>
#include <xtd/date_time>
#include <xtd/day_of_week>
#include <xtd/typeof>
class foo {
public:
foo() = default;
foo(int value) : value_(value) {}
int value() const noexcept {return value_;}
bool operator ==(const foo& v) const noexcept {return value_ == v.value_;}
bool operator <(const foo& v) const noexcept {return value_ < v.value_;}
private:
int value_ = 0;
};
template<typename type_t>
string get_boxed_info(const type_t& value) {
auto boxed_value = boxing(value);
return string::format(
"[type = {}, boxed type = {}, value = {}]",
typeof_(value),
typeof_(boxed_value), boxed_value.to_string());
}
auto main() -> int {
console::write_line(get_boxed_info(42));
console::write_line(get_boxed_info(42.84));
console::write_line(get_boxed_info(true));
console::write_line(get_boxed_info(day_of_week::saturday));
console::write_line(get_boxed_info("A string"));
console::write_line(get_boxed_info(U"A u32 string"));
console::write_line(get_boxed_info(date_time::now()));
console::write_line(get_boxed_info(foo(42)));
}
#define typeof_
Used to obtain the type object of a specified type or object.
Definition typeof.hpp:45
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10