1. Trang chủ
  2. » Công Nghệ Thông Tin

HandBooks Professional Java-C-Scrip-SQL part 33 pdf

9 123 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 32,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Math and Numerics Boost.Integer This library provides useful functionality for integer types, such as compile-time constants for the minimum and maximum values,[3] suitably sized types

Trang 1

Math and Numerics

Boost.Integer

This library provides useful functionality for integer types, such as compile-time constants for the minimum and maximum values,[3] suitably sized types based on the number of required bits, static binary logarithm calculations, and more Also included are typedefs from the 1999 C Standard header <stdint.h>

[3]

std::numeric_limits only provide these as functions

The authors of Integer are Beman Dawes and Daryle Walker

Boost.Interval

The Interval library helps when working with mathematical intervals It provides arithmetic operators for the class template interval A common use case for working with intervals (besides the obvious case of computations including

intervals) is when computations provide inexact results; intervals make it possible

to quantify the propagation of rounding errors

The authors of Interval are Guillaume Melquiond, Sylvain Pion, and Hervé

Brönniman, and the library is inspired by previous work from Jens Maurer

Boost.Math

Math is a collection of mathematics templates: quaternions and octonions (generalizations of complex numbers); numerical functions such as acosh,

asinh, and sinhc; functionality for calculating the greatest common divisor (GCD) and least common multiple (LCM); and more

The authors of Math are Hubert Holin, Daryle Walker, and Eric Ford

Boost.Minmax

Minmax simultaneously computes the minimum and maximum values, rather than

Trang 2

requiring two comparisons when using std::min and std::max For a range

of n elements, only 3n/2+1 comparisons are performed, rather than the 2n

required when using std::min_element and std::max_element

The author of Minmax is Hervé Brönniman

Boost.Numeric Conversion

The Numeric Conversion library is a collection of tools used to perform safe and predictable conversions between values of different numeric types For example, there is a tool called numeric_cast (originally from Boost.Conversion), which performs range-checked conversions and ensures that the value can be represented

in the destination type; otherwise, it throws an exception

The author of Numeric Conversion is Fernando Cacciola

Boost.Operators

The Operators library provides implementations of related operators and concepts (LessThanComparable, Arithmetic, and so on) When defining operators for a type,

it is both tedious and error prone to add all of the operators that should be defined For example, when providing operator< (LessThanComparable),

operator<=, operator>, and operator>= should also be defined in most cases Operators automatically declare and define all relevant operators in terms of

a minimum set of user-defined operators for a given type There is detailed

coverage of the library in "Library 4: Operators 4."

The authors of Operators are David Abrahams, Jeremy Siek, Aleksey Gurtovoy, Beman Dawes, and Daryle Walker

Boost.Random

This is a library for professional use of random numbers, including a number of generators and distributions that are commonly used in a wide variety of domains such as simulation and security Random has been accepted for the upcoming

Library Technical Report

The author of Random is Jens Maurer

Boost.Rational

Trang 3

Integer types and floating-point types are built into the C++ language, and complex numbers are part of the C++ Standard Library, but what about rational numbers? Rational numbers avoid the problems with loss of precision in floating-point types,

so their use in tracking money, for example, is popular Rational provides rational numbers built atop any integral type, including user-defined types (where a type with unlimited precision is obviously the most useful)

The author of Rational is Paul Moore

Boost.uBLAS

The uBLAS library provides basic linear algebra operations on vectors and

matrices using mathematical notation, via operator overloading, with efficient code generation (using expression templates)

The authors of uBLAS are Joerg Walter and Mathias Koch

Input/Output

Boost.Assign

Assign assists in assigning series of values into containers It gives the user an easy way of assigning data, by means of overloaded operator, (the comma operator) and operator()() (function call operator) Although being especially useful for a prototyping-style of code, the functionality of the library is useful at other times too, due to the readable code that results from using the library It is also possible to use this library to create anonymous arrays on-the-fly using list_of The author of Assign is Thorsten Ottosen

Boost.Filesystem

The Filesystem library offers portable manipulation of paths, directories, and files

Trang 4

The high-level abstractions enable C++ programmers to write code similar to

script-like operations that are often available in other programming languages For iterating thorough directories and files, convenient algorithms are provided The difficult task of writing code that is portable between platforms with different filesystems becomes feasible with the help of this library

The author of Filesystem is Beman Dawes

Boost.Format

This library adds functionality for formatting arguments according to format

strings, similar to printf, but with the addition of type safety One of the

primary arguments against using printf and similar formatting facilities is that they are inherently dangerous; there is no assurance that the types that are specified

in the format string are matched by the actual arguments Besides eliminating the opportunity for such mismatches, Format also enables custom formatting of user-defined types.[4]

[4]

This is not possible with formatting functions using a variable number of

arguments through use of ellipsis

The author of Format is Samuel Krempp

Boost.Io_state_savers

The Io_state_savers library allows the state of IOStream objects to be saved, and later restored, to undo any intervening state changes that may occur Many

manipulators permanently change the state of the stream on which they operate, and it can be cumbersome at best and error prone at worst to manually reset the state There are state savers for control flags, precision, width, exception masks, locale for the stream, and more

The author of Io_state_savers is Daryle Walker

Boost.Serialization

This library allows arbitrary C++ data structures to be saved to, and restored from, archives An archive could be, for example, a text file or XML file

Boost.Serialization is highly portable and offers a very mature set of features, such

as class versioning, serialization of common classes from the C++ Standard

Trang 5

Library, serialization of shared data, and more

The author of Serialization is Robert Ramey

Miscellaneous

Boost.Conversion

The Conversion library contains functions that augment the existing cast operators (static_cast, const_cast, and dynamic_cast) Conversion adds

polymorphic_cast and polymorphic_downcast for safe polymorphic casts, numeric_cast for safe conversions among numeric types, and

lexical_cast for lexical conversions (for example, between string and double) You can customize these casts to work optimally with your own

typessomething that isn't possible with the casts provided by the language The library is covered in detail in "Library 2: Conversion."

The authors of Conversion are Dave Abrahams and Kevlin Henney

Boost.Crc

The Crc library provides calculations of cyclic redundancy codes (CRC), a

commonly used checksum type A CRC is attached to a stream of data (from which

it is computed), so the checksum can be used later to validate the data The library includes four sample CRC types: crc_16_type, crc_ccitt_type,

crc_xmodem_type, and crc_32_type5

The author of Crc is Daryle Walker

Boost.Date_time

The Date_time library provides extensive support for date and time types and

operations upon them Without library support for dates and time, temporal

programming tasks are complicated and error prone Using Date_time, the natural

Trang 6

abstractions that one would expect are supported: days, weeks, months, durations (and intervals thereof), addition and subtraction, and so on The library addresses issues commonly omitted from other date/time libraries, such as handling leap seconds and supporting high-resolution time sources The library's design is

extensible, allowing for customized behavior or added functionality

The author of Date_time is Jeff Garland

5 CRC32 is used in PKZip, for example

Boost.Optional

It is common for functions to indicate that the returned value is invalid, but often the returned type does not have a state to indicate that it's not valid Optional offers the class template optional, which is a type that semantically has an additional state, one that is in effect when instances of optional are not containing

instances of the wrapped object

The author of Optional is Fernando Cacciola

Boost.Pool

The Pool library provides a pool memory allocatorthat is, a tool for managing dynamic memory in a single, large allocation Using memory pools is a good solution when allocating and deallocating many small objects, or when memory control needs to be made more efficient

The author of Pool is Steve Cleary

Boost.Preprocessor

Using the preprocessor is hard when you need to express common constructs such

as recursion, it doesn't have containers, doesn't provide means for iteration, and so forth Nevertheless, the preprocessor is a powerful and portable tool The

Preprocessor library provides abstractions on top of the preprocessor These

include lists, tuples, and arrays, as well as algorithms that operate on the elements

of those types The library helps eliminate repetitive code, thus reducing your effort, while making code more readable, expressive, and maintainable

The authors of Preprocessor are Vesa Karvonen and Paul Mensonides

Trang 7

Boost.Program_options

The Program_options library retrieves program configuration options (name/value pairs), typically provided through command-line arguments or configuration files The library relieves the programmer from the task of parsing the data by hand The author of Program_options is Vladimir Prus

Boost.Python

The Python library provides interoperability between C++ and Python.[6] It is used

to expose C++ classes and functions to Python and Python objects to C++ It is non-intrusive, which means that existing code typically requires no changes to be exposed in Python

[6]

A popular programming language that you should get acquainted with

The author of Python is David Abrahams, with important contributions from Joel

de Guzman and Ralf W Grosse-Kunstleve

Boost.Smart_ptr

Smart pointers are vital parts of any programmer's toolbox They are used

everywhere to avoid resource leaks, share resources, and manage object lifetimes correctly There are a great number of good smart pointer libraries available, some for free, others part of commercial packages Smart_ptr is among the best, as

proven by thousands of users and the recommendations from leading experts in the field Smart_ptr includes non-intrusive smart pointers for limiting scope

(scoped_ptr and scoped_array) and sharing resources (shared_ptr and shared_array), an observing smart pointer to use with shared_ptr

(weak_ptr), and an intrusive smart pointer class (intrusive_ptr)

Smart_ptr's shared_ptr (including the helper

enable_shared_from_this) and weak_ptr have been accepted for the upcoming Library Technical Report For more about these really smart pointers, see "Library 1: Smart_ptr 1."

The authors of Smart_ptr are Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler

Boost.Test

Trang 8

The Test library provides a matched set of components for writing test programs, organizing tests into simple test cases and test suites, and controlling their runtime execution The Program Execution Monitor, a component in the library, is also useful in some production (nontest) environments

The author of Test is Gennadiy Rozental (based upon earlier work by Beman Dawes)

Boost.Thread

Portable threading is tricky business, and there's no help to be had from C++ itself,

as the language includes no threading support, nor acknowledges it in any way Of course, there's POSIX, available on many platforms, but POSIX defines a C API Thread is a library that offers portable threading through a number of threading primitives and higher-level abstractions

The author of Thread is William Kempf

Boost.Timer

The Timer library contains features for measuring time, and aims to be as

consistent as possible across different platforms Although there are typically platform-specific APIs that allow programmers to measure time, there is no

portable way of attaining high-resolution timers Boost.Timer addresses this

problem by offering the best possible resolution whilst remaining portable, in return for a certain degree of freedom of guaranteed accuracy and precision

The author of Timer is Beman Dawes

Boost.Tribool

This library contains a tribool class, which implements three-state Boolean logic A three-state Boolean type has an additional state besides true and false: indeterminate (this state could also be named maybe; the name is configurable) The author of Tribool is Douglas Gregor

Boost.Utility

Some useful stuff just doesn't find its way into a separate library, typically because

Trang 9

it is not complicated or extensive enough to warrant a separate library That doesn't make it less useful; in fact, small utilities often have the most widespread use In Boost, such utilities are contained in the aptly named Utility library Here, one finds checked_delete, a function that ensures that a type is complete upon the point of deletion, the class noncopyable to ensure that a class cannot be copied, and enable_if for total control of function overloading There's a lot more to Utility See "Library 3: Utility" for the whole story

The authors of Utility are David Abrahams, Daryle Walker, Douglas Gregor, and others

Boost.Value_initialized

The Value_initialized library helps construct and initialize objects in a generic way In C++, a newly constructed object can be either zero-initialized, default-constructed, or indeterminate, all depending upon the type of the object With Boost.Value_initialized, this inconsistency problem goes away

The author of Value_initialized is Fernando Cacciola

Ngày đăng: 06/07/2014, 03:20