...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Lazy casts...
#include <boost/phoenix/object/static_cast.hpp> #include <boost/phoenix/object/dynamic_cast.hpp> #include <boost/phoenix/object/const_cast.hpp> #include <boost/phoenix/object/reinterpret_cast.hpp>
The set of lazy C++ cast template functions provide a way of lazily casting an object of a certain type to another type. The syntax resembles the well known C++ casts. Take note however that the lazy versions have a trailing underscore.
static_cast_<T>(lambda_expression) dynamic_cast_<T>(lambda_expression) const_cast_<T>(lambda_expression) reinterpret_cast_<T>(lambda_expression)
Example:
static_cast_<Base*>(&arg1)
Static-casts the address of arg1
to a Base*
.