...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Copyright © 2008 Howard Hinnant
Copyright © 2006, 2008 Beman Dawes
Copyright © 2009-2012 Vicente J. Botet Escriba
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Table of Contents
This documentation makes use of the following naming and formatting conventions.
fixed width
font
and is syntax-highlighted.
italics
.
()
, as in free_function()
.
class_template<>
;
that is, it is in code font and its name is followed by <>
to indicate that it is a class template.
MACRO()
;
that is, it is uppercase in code font and its name is followed by ()
to indicate that it is a function-like
macro. Object-like macros appear without the trailing ()
.
Note | |
---|---|
In addition, notes such as this one specify non-essential information that provides additional background or rationale. |
Finally, you can mentally add the following to any code fragments in this document:
// Include all of Ratio files #include <boost/ratio.hpp> using namespace boost;
Boost.Ratio aimed to implement the compile time ratio facility in C++11, as proposed in N2661 - A Foundation to Sleep On. That document provides background and motivation for key design decisions and is the source of a good deal of information in this documentation.
Since C++11 is now universally available, this library is only retained for
backward compatibility, and starting with Boost 1.84, it's implemented in
terms of the standard <ratio>
header.
The Boost.Ratio library provides:
ratio
, for specifying compile
time rational constants such as 1/3 of a nanosecond or the number of
inches per meter. ratio
represents a compile time
ratio of compile time constants with support for compile time arithmetic
with overflow and division by zero protection.
boost::ratio<N, D>
in the form of a std::basic_string
which can be useful for I/O.