Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

So Just What is a Policy Anyway?

A policy is a compile-time mechanism for customising the behaviour of a special function, or a statistical distribution. With Policies you can control:

Some of these policies could arguably be runtime variables, but then we couldn't use compile-time dispatch internally to select the best evaluation method for the given policies.

For this reason a Policy is a type: in fact it's an instance of the class template boost::math::policies::policy<>. This class is just a compile-time-container of user-selected policies (sometimes called a type-list):

using namespace boost::math::policies;
// Define a policy that sets ::errno on overflow, and does
// not promote double to long double internally:
typedef policy<domain_error<errno_on_error>, promote_double<false> > mypolicy;