template <class T>
struct box
  // unspecified


It can be used to box values that are not nullary template metafunctions. Boxed values are nullary template metafunctions evaluating to themselves, thus they can be passed around in lazy template metaprograms.

The content of box is left untouched by lazy and is not subject to variable substitution in let, lambda and do expressions.

The tag of boxed values is box_tag. Boxed values can be compared with boost::mpl::equal_to and considered equal when they wrap the same type.

#include <mpllibs/metamonad/box.hpp>


typedef box<int> boxed_int;