Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

C++ Technical Report 1 (TR1) является общим названием для стандарта ISO/IEC TR 19768, библиотеки расширений C++ — это документ с предложением дополнений в стандарт библиотеки C++. Дополнения включают регулярные выражения, умные указатели, хеш-таблицы, и генераторы случайных чисел. TR1 не стандарт, а скорее проект документа. Однако, большинство его предложений стало частью следующего официального стандарта, C++11.

Документ впервые был распространён в виде черновика Draft Technical Report on C++ Library Extensions, затем в 2007 году опубликован как ISO/IEC стандарт под названием ISO/IEC TR 19768:2007.

Дополнения, описанные в TR1

Все дополнения, которые описывает TR1, находятся в namespace std::tr1

Общие утилиты

  • reference_wrapper
  • Умные указатели:
    • shared_ptr
    • weak_ptr

Функциональные объекты

Определены в заголовочном файле tr1/functional

  • function
  • bind
  • result_of
  • mem_fn

Метапрограммирование и type_traits

Несколько меташаблонов определено в tr1/functional: is_pod, has_virtual_destructor, remove_extent, и другие. Основано на Boost Type Traits.

ГПСЧ

Заголовочный файл tr1/random определяет:

  • variate_generator
  • mersenne_twister
  • poisson_distribution, etc.

Специальные математические функции

Некоторые особенности TR1, такие, как специальные математические функции и некоторые дополнения C99, которые не включены в Visual C++ реализацию TR1.

Данные дополнения не попали в C++11.

  • дополнения к <cmath>/<math.h> файлы заголовков — beta, legendre и т. д.

В следующей таблице приведены все 23 специальных функций, описанные в TR1.

Имя функции Прототип функции Математическое выражение
Обобщённые полиномы Лягерра double assoc_laguerre(unsigned n, unsigned m, double x) ;
Присоединённые многочлены Лежандра double assoc_legendre(unsigned l, unsigned m, double x) ;
Бета-функция double beta(double x, double y) ;
Полный нормальный эллиптический интеграл Лежандра 1-го рода double comp_ellint_1(double k) ;
Полный нормальный эллиптический интеграл Лежандра 2-го рода double comp_ellint_2(double k) ;
Полный нормальный эллиптический интеграл Лежандра 3-го рода double comp_ellint_3(double k, double nu) ;
Вырожденные гипергеометрические функции double conf_hyperg(double a, double c, double x) ;
Регулярные цилиндрические функции Бесселя double cyl_bessel_i(double nu, double x) ;
Цилиндрические функции Бесселя первого рода double cyl_bessel_j(double nu, double x) ;
en:Irregular modified cylindrical Bessel functions double cyl_bessel_k(double nu, double x) ;
en:Cylindrical Neumann functions

en:Cylindrical Bessel functions of the second kind

double cyl_neumann(double nu, double x) ;
Неполный нормальный эллиптический интеграл 1-го рода double ellint_1(double k, double phi) ;
Неполный нормальный эллиптический интеграл 2-го рода double ellint_2(double k, double phi) ;
Неполный нормальный эллиптический интеграл 3-го рода double ellint_3(double k, double nu, double phi) ;
Интегральная показательная функция double expint(double x) ;
Многочлены Эрмита double hermite(unsigned n, double x) ;
en:Hypergeometric series double hyperg(double a, double b, double c, double x) ;
en:Laguerre polynomials double laguerre(unsigned n, double x) ;
en:Legendre polynomials double legendre(unsigned l, double x) ;
Дзета-функция Римана double riemann_zeta(double x) ;
en:Spherical Bessel functions of the first kind double sph_bessel(unsigned n, double x) ;
en:Spherical associated Legendre functions double sph_legendre(unsigned l, unsigned m, double theta) ;
en:Spherical Neumann functions

en:Spherical Bessel functions of the second kind

double sph_neumann(unsigned n, double x) ;

Каждая функция имеет два дополнительных варианта. Добавление F 'или' L 'суффикс к имени функции дает функцию, которая действует на float или long double значения соответственно. Например:

float sph_neumannf( unsigned n, float x ) ;
long double sph_neumannl( unsigned n, long double x ) ;

Контейнеры

Тип для кортежей — tuple, основан на Boost Tuple, похож на расширение std: pair для большего числа объектов.

Тип для массивов фиксированной длины — array, основан на Boost Array.

Хеш-контейнеры

Заголовочные файлы unordered_set, unordered_map. Типы unordered_set, unordered_multiset, unordered_map, unordered_multimap (аналоги set, multiset, map, multimap). Обеспечивают в среднем константное время доступа, но в худшем случае длительность операции будет иметь линейную сложность в зависимости от количества элементов в контейнере.

Регулярные выражения

Заголовочный файл regex, предоставляет regex, regex_match, regex_search, regex_replace и т. п. Основан на Boost RegEx.

Совместимость с Си

Одной из концепций при разработке C++ было обеспечение как можно большей совместимости с языком программирования Си. Однако данная концепция не являлась и не является приоритетной, а лишь настоятельно рекомендованной, а потому C++ нельзя в строгом смысле считать надмножеством Си (стандарты этих языков расходятся). TR1 — это попытка примирить некоторые из различий данных языков путём добавления различных заголовков в следующие библиотеки C++: <complex>, <locale>, <cmath> и т. д. Данные изменения способствуют приведению C++ в соответствие с C99 (не все части C99 включены в TR1).

Techical Report 2

Существовали планы по публикации следующего набора дополнений, C++ Technical Report 2, после стандартизации C++11[1]. Однако впоследствии комитет по стандартизации отказался от TR2 в пользу компактных проблемно-ориентированных спецификаций[2].

Некоторые из предлагаемых расширений:

См. также

Примечания

  1. TR2 call for proposals. Дата обращения: 17 апреля 2013. Архивировано 18 апреля 2013 года.
  2. TR2 is dead; multiple TR's coming instead. (недоступная ссылка)

Литература

  • ISO/IEC JTC1/SC22/WG21. Draft Technical Report on C++ Library Extensions (неопр.). — 2005. — 24 June.
  • Becker, Peter. The C++ Standard Library Extensions: A Tutorial and Reference (англ.). — Addison-Wesley Professional, 2006. — ISBN 0-321-41299-0.

Ссылки

Эта страница в последний раз была отредактирована 9 января 2024 в 00:16.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).