![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
TR1 By SubjectBoost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 36. Boost.TR1
|
![]() |
Note |
---|---|
В этом шаблоне есть проблемы с переносимостью - в частности, шаблон< |
#include <boost/tr1/regex.hpp>
или
#include <regex>
Эта библиотека обеспечивает всестороннюю поддержку регулярных выражений, включая итератор или сопоставление на основе строк, поиск, поиск и замену, итерацию и токенизацию. Поддерживаются регулярные выражения POSIX и ECMAScript (JavaScript). Более подробную информацию см. в. Документация Regex.
namespace std { namespace tr1 { // [7.5] Regex constants namespace regex_constants { typedef bitmask_type syntax_option_type; typedef bitmask_type match_flag_type; typedef implementation-defined error_type; } // namespace regex_constants // [7.6] Class regex_error class regex_error; // [7.7] Class template regex_traits template <class charT> struct regex_traits; // [7.8] Class template basic_regex template <class charT, class traits = regex_traits<charT> > class basic_regex; typedef basic_regex<char> regex; typedef basic_regex<wchar_t> wregex; // [7.8.6] basic_regex swap template <class charT, class traits> void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2); // [7.9] Class template sub_match template <class BidirectionalIterator> class sub_match; typedef sub_match<const char*> csub_match; typedef sub_match<const wchar_t*> wcsub_match; typedef sub_match<string::const_iterator> ssub_match; typedef sub_match<wstring::const_iterator> wssub_match; // [7.9.2] sub_match non-member operators /* Comparison operators omitted for clarity.... */ template <class charT, class ST, class BiIter> basic_ostream<charT, ST>& operator<<(basic_ostream<charT, ST>& os, const sub_match<BiIter>& m); // [7.10] Class template match_results template <class BidirectionalIterator, class Allocator = allocator<sub_match<BidirectionalIterator> > > class match_results; typedef match_results<const char*> cmatch; typedef match_results<const wchar_t*> wcmatch; typedef match_results<string::const_iterator> smatch; typedef match_results<wstring::const_iterator> wsmatch; // match_results comparisons template <class BidirectionalIterator, class Allocator> bool operator== (const match_results<BidirectionalIterator, Allocator>& m1, const match_results<BidirectionalIterator, Allocator>& m2); template <class BidirectionalIterator, class Allocator> bool operator!= (const match_results<BidirectionalIterator, Allocator>& m1, const match_results<BidirectionalIterator, Allocator>& m2); // [7.10.6] match_results swap template <class BidirectionalIterator, class Allocator> void swap(match_results<BidirectionalIterator, Allocator>& m1, match_results<BidirectionalIterator, Allocator>& m2); // [7.11.2] Function template regex_match template <class BidirectionalIterator, class Allocator, class charT, class traits> bool regex_match(BidirectionalIterator first, BidirectionalIterator last, match_results<BidirectionalIterator, Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class BidirectionalIterator, class charT, class traits> bool regex_match(BidirectionalIterator first, BidirectionalIterator last, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class charT, class Allocator, class traits> bool regex_match(const charT* str, match_results<const charT*, Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class ST, class SA, class Allocator, class charT, class traits> bool regex_match(const basic_string<charT, ST, SA>& s, match_results<typename basic_string<charT, ST, SA>::const_iterator,Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class charT, class traits> bool regex_match(const charT* str, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class ST, class SA, class charT, class traits> bool regex_match(const basic_string<charT, ST, SA>& s, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); // [7.11.3] Function template regex_search template <class BidirectionalIterator, class Allocator, class charT, class traits> bool regex_search(BidirectionalIterator first, BidirectionalIterator last, match_results<BidirectionalIterator, Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class BidirectionalIterator, class charT, class traits> bool regex_search(BidirectionalIterator first, BidirectionalIterator last, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class charT, class Allocator, class traits> bool regex_search(const charT* str, match_results<const charT*, Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class charT, class traits> bool regex_search(const charT* str, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class ST, class SA, class charT, class traits> bool regex_search(const basic_string<charT, ST, SA>& s, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template <class ST, class SA, class Allocator, class charT, class traits> bool regex_search(const basic_string<charT, ST, SA>& s, match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m, const basic_regex<charT, traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); // [7.11.4] Function template regex_replace template <class OutputIterator, class BidirectionalIterator, class traits, class charT> OutputIterator regex_replace(OutputIterator out, BidirectionalIterator first, BidirectionalIterator last, const basic_regex<charT, traits>& e, const basic_string<charT>& fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template <class traits, class charT> basic_string<charT> regex_replace(const basic_string<charT>& s, const basic_regex<charT, traits>& e, const basic_string<charT>& fmt, regex_constants::match_flag_type flags = regex_constants::match_default); // [7.12.1] Class template regex_iterator template <class BidirectionalIterator, class charT = typename iterator_traits<BidirectionalIterator>::value_type, class traits = regex_traits<charT> > class regex_iterator; typedef regex_iterator<const char*> cregex_iterator; typedef regex_iterator<const wchar_t*> wcregex_iterator; typedef regex_iterator<string::const_iterator> sregex_iterator; typedef regex_iterator<wstring::const_iterator> wsregex_iterator; // [7.12.2] Class template regex_token_iterator template <class BidirectionalIterator, class charT = typename iterator_traits<BidirectionalIterator>::value_type, class traits = regex_traits<charT> > class regex_token_iterator; typedef regex_token_iterator<const char*> cregex_token_iterator; typedef regex_token_iterator<const wchar_t*> wcregex_token_iterator; typedef regex_token_iterator<string::const_iterator> sregex_token_iterator; typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator; } // namespace tr1 } // namespace std
Конфигурация:Boost.Configдолжен (автоматически) определять макрос BOOST_HAS_TR1_REGEX, если стандартная библиотека реализует эту часть TR1.
Стандартное соответствие:Никаких проблем.
#include <boost/tr1/complex.hpp>
или
#include <complex>
Следующие шаблоны функций имеют дополнительные перегрузки:<arg
>,<norm
>,<conj
>,<polar
>,<imag
>и<real
>.
Дополнительных перегрузок достаточно для обеспечения:
long
double
>, то перегрузка ведет себя так, как если бы аргумент был брошен на<std::complex<longdouble>
>.double
>или является целым типом, то перегрузка ведет себя так, как если бы аргумент был отлит<std::complex<double>
>.float
>, то перегрузка ведет себя так, как если бы аргумент был брошен на<std::complex<float>
>.Шаблон функции<pow
>имеет дополнительные перегрузки, достаточные для обеспечения, по меньшей мере, одного аргумента типа<std::complex<T>
>:
complex<longdouble>
>или тип<longdouble
>, то перегрузка ведет себя так, как если бы оба аргумента были брошены на<std::complex<longdouble>
>.complex<double>
>,<double
>или целочисленный тип, то перегрузка ведет себя так, как если бы оба аргумента были брошены на<std::complex<double>
>.complex<float>
>или<float
>, то перегрузка ведет себя так, как если бы оба аргумента были брошены на<std::complex<float>
>.В следующем синопсисе<Real
>является типом с плавающей точкой,<Arithmetic
>является целым числом или типом с плавающей точкой, и<PROMOTE(X1...
XN)
>является самым большим типом с плавающей точкой в списке X1-XN после того, как любые типы с не плавающей точкой в списке были заменены типом<double
>.
template <class Arithmetic> PROMOTE(Arithmetic) arg(const Arithmetic& t); template <class Arithmetic> PROMOTE(Arithmetic) norm(const Arithmetic& t); template <class Arithmetic> complex<PROMOTE(Arithmetic)> conj(const Arithmetic& t); template <class Arithmetic1, class Arithmetic2> complex<PROMOTE(Arithmetic1,Arithmetic2)> polar(const Arithmetic1& rho, const Arithmetic2& theta = 0); template <class Arithmetic> PROMOTE(Arithmetic) imag(const Arithmetic& ); template <class Arithmetic> PROMOTE(Arithmetic) real(const Arithmetic& t); template<class Real1, class Real2> complex<PROMOTE(Real1, Real2)> pow(const complex<Real1>& x, const complex<Real2>& y); template<class Real, class Arithmetic> complex<PROMOTE(Real, Arithmetic)> pow (const complex<Real>& x, const Arithmetic& y); template<class Arithmetic, class Real> complex<PROMOTE(Real, Arithmetic)> pow (const Arithmetic& x, const complex<Real>& y);
Конфигурация:Boost.Configдолжен (автоматически) определять макрос BOOST_HAS_TR1_COMPLEX_OVERLOADS Если в стандартной библиотеке реализованы дополнительные перегрузки для существующих сложных арифметических функций.
Стандартное соответствие:Никаких проблем.
#include <boost/tr1/complex.hpp>
или
#include <complex>
Алгоритмы<acos
>,<asin
>,<atan
>,<acosh
>,<asinh
>,<atanh
>и<fabs
>перегружены для аргументов типа<std::complex<T>
>. Эти алгоритмы являются полностью классическими и ведут себя так, как указано в стандартном разделе 7.3.5 C99. Смотрите. Математическая документация для получения дополнительной информации.
namespace std { namespace tr1 { template<class T> complex<T> acos(complex<T>& x); template<class T> complex<T> asin(complex<T>& x); template<class T> complex<T> atan(complex<T>& x); template<class T> complex<T> acosh(complex<T>& x); template<class T> complex<T> asinh(complex<T>& x); template<class T> complex<T> atanh(complex<T>& x); template<class T> complex<T> fabs(complex<T>& x); } // namespace tr1 } // namespace std
Конфигурация:Boost.Configдолжен (автоматически) определять макрос BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG Если в стандартной библиотеке реализованы дополнительные функции обратного трига.
Стандартное соответствие:Никаких проблем.
#include <boost/tr1/unordered_set.hpp>
или
#include <unordered_set>
Для доступа к данным на основе поиска ключей стандартная библиотека C++ предлагает std::set, std::map, std::multiset и std::multimap. Они обычно реализуются с использованием сбалансированных двоичных деревьев, так что время поиска имеет логарифмическую сложность. Как правило, это нормально, но во многих случаях хеш-таблица может работать лучше, поскольку доступ к данным в среднем имеет постоянную сложность. В худшем случае сложность линейна, но этого редко и с некоторой осторожностью можно избежать.
Имея это в виду, стандартный библиотечный технический отчет C++ представил неупорядоченные ассоциативные контейнеры, которые реализуются с использованием хеш-таблицы, и теперь они были добавлены в рабочий проект стандарта C++.
Для получения дополнительной информации обратитесь кнеупорядоченным библиотечным документам.
namespace std { namespace tr1 { template <class Value, class Hash = hash<Value>, class Pred = std::equal_to<Value>, class Alloc = std::allocator<Value> > class unordered_set; // [6.3.4.5] Class template unordered_multiset template <class Value, class Hash = hash<Value>, class Pred = std::equal_to<Value>, class Alloc = std::allocator<Value> > class unordered_multiset; template <class Value, class Hash, class Pred, class Alloc> void swap(unordered_set<Value, Hash, Pred, Alloc>& x, unordered_set<Value, Hash, Pred, Alloc>& y); template <class Value, class Hash, class Pred, class Alloc> void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x, unordered_multiset<Value, Hash, Pred, Alloc>& y); } // namespace tr1 } // namespace std
Конфигурация:Boost.Configдолжен (автоматически) определять макрос BOOST_HAS_TR1_UNORDERED_SET Если ваша стандартная библиотека реализует эту часть TR1.
Стандартное соответствие:Нет известных проблем для компиляторов.
#include <boost/tr1/unordered_map.hpp>
или
#include <unordered_map>
Для доступа к данным на основе поиска ключей стандартная библиотека C++ предлагает std::set, std::map, std::multiset и std::multimap. Они обычно реализуются с использованием сбалансированных двоичных деревьев, так что время поиска имеет логарифмическую сложность. Как правило, это нормально, но во многих случаях хеш-таблица может работать лучше, поскольку доступ к данным в среднем имеет постоянную сложность. В худшем случае сложность линейна, но этого редко и с некоторой осторожностью можно избежать.
Имея это в виду, стандартный библиотечный технический отчет C++ представил неупорядоченные ассоциативные контейнеры, которые реализуются с использованием хеш-таблицы, и теперь они были добавлены в рабочий проект стандарта C++.
Для получения дополнительной информации обратитесь кнеупорядоченным библиотечным документам.
namespace std { namespace tr1 { // [6.3.4.4] Class template unordered_map template <class Key, class T, class Hash = hash<Key>, class Pred = std::equal_to<Key>, class Alloc = std::allocator<std::pair<const Key, T> > > class unordered_map; // [6.3.4.6] Class template unordered_multimap template <class Key, class T, class Hash = hash<Key>, class Pred = std::equal_to<Key>, class Alloc = std::allocator<std::pair<const Key, T> > > class unordered_multimap; template <class Key, class T, class Hash, class Pred, class Alloc> void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x, unordered_map<Key, T, Hash, Pred, Alloc>& y); template <class Key, class T, class Hash, class Pred, class Alloc> void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x, unordered_multimap<Key, T, Hash, Pred, Alloc>& y); } // namespace tr1 } // namespace std
Конфигурация:Boost.Configдолжен (автоматически) определять макрос BOOST_HAS_TR1_UNORDERED_MAP Если ваша стандартная библиотека реализует эту часть TR1.
Стандартное соответствие:Нет известных проблем для компиляторов.
TR добавляет 23 специальные функции (плюс поплавок и длинные двойные перегрузки) для заголовка
Для получения дополнительной информации обратитесь кMath Library docs.
namespace std { namespace tr1 { // [5.2.1.1] associated Laguerre polynomials: double assoc_laguerre(unsigned n, unsigned m, double x); float assoc_laguerref(unsigned n, unsigned m, float x); long double assoc_laguerrel(unsigned n, unsigned m, long double x); // [5.2.1.2] associated Legendre functions: double assoc_legendre(unsigned l, unsigned m, double x); float assoc_legendref(unsigned l, unsigned m, float x); long double assoc_legendrel(unsigned l, unsigned m, long double x); // [5.2.1.3] beta function: double beta(double x, double y); float betaf(float x, float y); long double betal(long double x, long double y); // [5.2.1.4] (complete) elliptic integral of the first kind: double comp_ellint_1(double k); float comp_ellint_1f(float k); long double comp_ellint_1l(long double k); // [5.2.1.5] (complete) elliptic integral of the second kind: double comp_ellint_2(double k); float comp_ellint_2f(float k); long double comp_ellint_2l(long double k); // [5.2.1.6] (complete) elliptic integral of the third kind: double comp_ellint_3(double k, double nu); float comp_ellint_3f(float k, float nu); long double comp_ellint_3l(long double k, long double nu); // [5.2.1.7] confluent hypergeometric functions: double conf_hyperg(double a, double c, double x); float conf_hypergf(float a, float c, float x); long double conf_hypergl(long double a, long double c, long double x); // [5.2.1.8] regular modified cylindrical Bessel functions: double cyl_bessel_i(double nu, double x); float cyl_bessel_if(float nu, float x); long double cyl_bessel_il(long double nu, long double x); // [5.2.1.9] cylindrical Bessel functions (of the first kind): double cyl_bessel_j(double nu, double x); float cyl_bessel_jf(float nu, float x); long double cyl_bessel_jl(long double nu, long double x); // [5.2.1.10] irregular modified cylindrical Bessel functions: double cyl_bessel_k(double nu, double x); float cyl_bessel_kf(float nu, float x); long double cyl_bessel_kl(long double nu, long double x); // [5.2.1.11] cylindrical Neumann functions; // cylindrical Bessel functions (of the second kind): double cyl_neumann(double nu, double x); float cyl_neumannf(float nu, float x); long double cyl_neumannl(long double nu, long double x); // [5.2.1.12] (incomplete) elliptic integral of the first kind: double ellint_1(double k, double phi); float ellint_1f(float k, float phi); long double ellint_1l(long double k, long double phi); // [5.2.1.13] (incomplete) elliptic integral of the second kind: double ellint_2(double k, double phi); float ellint_2f(float k, float phi); long double ellint_2l(long double k, long double phi); // [5.2.1.14] (incomplete) elliptic integral of the third kind: double ellint_3(double k, double nu, double phi); float ellint_3f(float k, float nu, float phi); long double ellint_3l(long double k, long double nu, long double phi); // [5.2.1.15] exponential integral: double expint(double x); float expintf(float x); long double expintl(long double x); // [5.2.1.16] Hermite polynomials: double hermite(unsigned n, double x); float hermitef(unsigned n, float x); long double hermitel(unsigned n, long double x); // [5.2.1.17] hypergeometric functions: double hyperg(double a, double b, double c, double x); float hypergf(float a, float b, float c, float x); long double hypergl(long double a, long double b, long double c, long double x); // [5.2.1.18] Laguerre polynomials: double laguerre(unsigned n, double x); float laguerref(unsigned n, float x); long double laguerrel(unsigned n, long double x); // [5.2.1.19] Legendre polynomials: double legendre(unsigned l, double x); float legendref(unsigned l, float x); long double legendrel(unsigned l, long double x); // [5.2.1.20] Riemann zeta function: double riemann_zeta(double); float riemann_zetaf(float); long double riemann_zetal(long double); // [5.2.1.21] spherical Bessel functions (of the first kind): double sph_bessel(unsigned n, double x); float sph_besself(unsigned n, float x); long double sph_bessell(unsigned n, long double x); // [5.2.1.22] spherical associated Legendre functions: double sph_legendre(unsigned l, unsigned m, double theta); float sph_legendref(unsigned l, unsigned m, float theta); long double sph_legendrel(unsigned l, unsigned m, long double theta); // [5.2.1.23] spherical Neumann functions; // spherical Bessel functions (of the second kind): double sph_neumann(unsigned n, double x); float sph_neumannf(unsigned n, float x); long double sph_neumannl(unsigned n, long double x); } // namespace tr1 } // namespace std
Стандартное соответствие:В версии Boost этого компонента не поддерживаются следующие функции:
// [5.2.1.7] confluent hypergeometric functions: double conf_hyperg(double a, double c, double x); float conf_hypergf(float a, float c, float x); long double conf_hypergl(long double a, long double c, long double x); // [5.2.1.17] hypergeometric functions: double hyperg(double a, double b, double c, double x); float hypergf(float a, float b, float c, float x); long double hypergl(long double a, long double b, long double c, long double x);
TR добавляет ряд специальных функций, которые были впервые введены в стандарт C99 для заголовка
Для получения дополнительной информации обратитесь кMath Library docs.
namespace std { namespace tr1 { // types typedef floating-type double_t; typedef floating-type float_t; // functions double acosh(double x); float acoshf(float x); long double acoshl(long double x); double asinh(double x); float asinhf(float x); long double asinhl(long double x); double atanh(double x); float atanhf(float x); long double atanhl(long double x); double cbrt(double x); float cbrtf(float x); long double cbrtl(long double x); double copysign(double x, double y); float copysignf(float x, float y); long double copysignl(long double x, long double y); double erf(double x); float erff(float x); long double erfl(long double x); double erfc(double x); float erfcf(float x); long double erfcl(long double x); double exp2(double x); float exp2f(float x); long double exp2l(long double x); double expm1(double x); float expm1f(float x); long double expm1l(long double x); double fdim(double x, double y); float fdimf(float x, float y); long double fdiml(long double x, long double y); double fma(double x, double y, double z); float fmaf(float x, float y, float z); long double fmal(long double x, long double y, long double z); double fmax(double x, double y); float fmaxf(float x, float y); long double fmaxl(long double x, long double y); double fmin(double x, double y); float fminf(float x, float y); long double fminl(long double x, long double y); double hypot(double x, double y); float hypotf(float x, float y); long double hypotl(long double x, long double y); int ilogb(double x); int ilogbf(float x); int ilogbl(long double x); double lgamma(double x); float lgammaf(float x); long double lgammal(long double x); long long llrint(double x); long long llrintf(float x); long long llrintl(long double x); long long llround(double x); long long llroundf(float x); long long llroundl(long double x); double log1p(double x); float log1pf(float x); long double log1pl(long double x); double log2(double x); float log2f(float x); long double log2l(long double x); double logb(double x); float logbf(float x); long double logbl(long double x); long lrint(double x); long lrintf(float x); long lrintl(long double x); long lround(double x); long lroundf(float x); long lroundl(long double x); double nan(const char *str); float nanf(const char *str); long double nanl(const char *str); double nearbyint(double x); float nearbyintf(float x); long double nearbyintl(long double x); double nextafter(double x, double y); float nextafterf(float x, float y); long double nextafterl(long double x, long double y); double nexttoward(double x, long double y); float nexttowardf(float x, long double y); long double nexttowardl(long double x, long double y); double remainder(double x, double y); float remainderf(float x, float y); long double remainderl(long double x, long double y); double remquo(double x, double y, int *pquo); float remquof(float x, float y, int *pquo); long double remquol(long double x, long double y, int *pquo); double rint(double x); float rintf(float x); long double rintl(long double x); double round(double x); float roundf(float x); long double roundl(long double x); double scalbln(double x, long ex); float scalblnf(float x, long ex); long double scalblnl(long double x, long ex); double scalbn(double x, int ex); float scalbnf(float x, int ex); long double scalbnl(long double x, int ex); double tgamma(double x); float tgammaf(float x); long double tgammal(long double x); double trunc(double x); float truncf(float x); long double truncl(long double x); // C99 macros defined as C++ templates template<class T> bool signbit(T x); template<class T> int fpclassify(T x); template<class T> bool isfinite(T x); template<class T> bool isinf(T x); template<class T> bool isnan(T x); template<class T> bool isnormal(T x); template<class T> bool isgreater(T x, T y); template<class T> bool isgreaterequal(T x, T y); template<class T> bool isless(T x, T y); template<class T> bool islessequal(T x, T y); template<class T> bool islessgreater(T x, T y); template<class T> bool isunordered(T x, T y); }} // namespaces
Стандартное соответствие:В версии Boost этого компонента не поддерживаются следующие функции:
double exp2(double x); float exp2f(float x); long double exp2l(long double x); double fdim(double x, double y); float fdimf(float x, float y); long double fdiml(long double x, long double y); double fma(double x, double y, double z); float fmaf(float x, float y, float z); long double fmal(long double x, long double y, long double z); int ilogb(double x); int ilogbf(float x); int ilogbl(long double x); long long llrint(double x); long long llrintf(float x); long long llrintl(long double x); double log2(double x); float log2f(float x); long double log2l(long double x); double logb(double x); float logbf(float x); long double logbl(long double x); long lrint(double x); long lrintf(float x); long lrintl(long double x); double nan(const char *str); float nanf(const char *str); long double nanl(const char *str); double nearbyint(double x); float nearbyintf(float x); long double nearbyintl(long double x); double remainder(double x, double y); float remainderf(float x, float y); long double remainderl(long double x, long double y); double remquo(double x, double y, int *pquo); float remquof(float x, float y, int *pquo); long double remquol(long double x, long double y, int *pquo); double rint(double x); float rintf(float x); long double rintl(long double x); double scalbln(double x, long ex); float scalblnf(float x, long ex); long double scalblnl(long double x, long ex); double scalbn(double x, int ex); float scalbnf(float x, int ex); long double scalbnl(long double x, int ex); // C99 macros defined as C++ templates template<class T> bool isgreater(T x, T y); template<class T> bool isgreaterequal(T x, T y); template<class T> bool isless(T x, T y); template<class T> bool islessequal(T x, T y); template<class T> bool islessgreater(T x, T y); template<class T> bool isunordered(T x, T y);
Статья TR1 By Subject раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 36. Boost.TR1 может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Chapter 36. Boost.TR1 ::
реклама |