Shows how to use xtd::as operator.
#include <xtd/as>
#include <xtd/console>
#include <xtd/convert>
#include <xtd/random>
#include <memory>
using namespace std;
auto main()->int {
int i1 = convert::to_int32(d);
int i2 = as<int>(d);
console::write_line("d = {0}, convert::to_int32(d) = {1}, as<int>(d) = {2}", d, i1, i2);
console::write_line("i = {0}, convert::to_string(i) = {1}, as<ustring>(i) = {2}", i, s1, s2);
console::write_line("a = {0}, convert::to_string(a) = {1}, as<ustring>(a) = {2}", a, s1, s2);
shared_ptr<object> value = make_shared<ustring>("a");
console::write_line("value = {0}, as<ustring>(value) = {1}", *value, *value2);
try {
console::write_line(
"as<ustring>(rand) = {0}",
as<ustring>(rand));
console::write_line(
"Bad cast : {0} !", e.
message());
}
shared_ptr<object> ver = make_shared<version>(1, 1, 5);
if (str == nullptr)
console::write_line("Bad cast!");
}