Exemple #1
0
void any_regular_test() {
    
    using adobe::any_regular_t;
    using adobe::runtime_cast;

    {
    any_regular_t x(10.0);
    double y = runtime_cast<double&>(x);
    BOOST_CHECK_EQUAL(y, 10.0);
    runtime_cast<double&>(x) = 11.0;
    y = runtime_cast<double&>(x);
    BOOST_CHECK_EQUAL(y, 11.0);

    BOOST_CHECK(runtime_cast(x, y));

    BOOST_CHECK_EQUAL(*runtime_cast<double*>(&x), 11.0);
    BOOST_CHECK(!runtime_cast<char*>(&x));
    }

    {
    const any_regular_t x(10.0);
    double y = runtime_cast<const double&>(x);
    BOOST_CHECK_EQUAL(y, 10.0);
    }

    {
    const any_regular_t x;
    const any_regular_t y(10.0);
    BOOST_CHECK(adobe::empty(x));
    BOOST_CHECK(!adobe::empty(y));
    }

#if 0
    {
    any_regular_t x(1);
    int y = runtime_cast<int&>(x);
    }
#endif
}