Øk bibliotekene
Boost er et sett med gratis programvare og fagfellevurderte biblioteker beregnet på å utvide funksjonene til programmeringsspråket C++ . Dens BSD-type lisens lar den brukes i alle typer prosjekter, enten kommersielle eller ikke.
Utviklere
De opprinnelige skaperne av Boost, Beman Dawes og David Abrahams, er fortsatt aktive i samfunnet. Forfatteren av flere bøker om C++, Nicolai Josuttis har også bidratt til Boosts array-bibliotek i 2001. Omtrent 3000 personer abonnerer på e-postlisten og dusinvis av dem er veldig aktive.
Liste over Boost-biblioteker
Strenge- og tekstbehandling
- conversion/lexical_cast : mal for leksikalsk rollebesetning, av Kevlin Henney.
- format : Typesikre formatoperasjoner (ligner printf), av Samuel Krempp.
- iostreams : Rammeverk for å definere strømmer, strømbuffere og input/output-filtre, av Jonathan Turkanis.
- regex : Regular Expression Library, av John Maddock
- spirit : LL-parserrammeverk som representerer parsere direkte som EBNF-grammatikker i C++ "inline"-funksjoner, av Joel de Guzmán, Hartmut Kaiser, Dan Nuffer og team.
- string_algo : Bibliotek med strengalgoritmer, av Pavol Droba.
- tokenizer : Separasjon av en streng eller sekvens av tegn i en serie med " tokens ", fra John Bandela.
- wave : Standardkompatibel implementering av C99/C++ forprosessorfunksjonalitet bak et brukervennlig iteratorgrensesnitt, av Hartmut Kaiser.
- xpressive : Regulære uttrykk som kan skrives som strenger eller uttrykksmaler, og kan referere til hverandre og til seg selv rekursivt med kraften til kontekstfrie grammatikker, av Eric Niebler.
Beholdere
- array : STL-beholderinnpakning for arrays med konstant størrelse, av Nicolai Josuttis.
- bimap : Toveis kart, av Matías Capeletto.
- circular_buffer : STL-kompatibel beholder også kjent som "ring" eller "syklisk buffer", av Jan Gaspar.
- dynamic_bitset : Hoved kjørbar versjon av std:: bitset av Jeremy Siek og Chuck Allison.
- gil : Generisk bildebibliotek, av Lubomir Bourdev og Hailin Jin.
- graf : Generiske grafkomponenter og algoritmer, av Jeremy Siek og et team ved University of Notre Dame.
- påtrengende : Beholdere og påtrengende algoritmer, av Ion Gaztañaga.
- multi_array : Flerdimensjonale beholdere og adaptere for sammenhengende datamatriser, av Ron Garcia.
- multi_index : Beholdere med flere tilgangsgrensesnitt som er kompatible med STL, av Joaquín M López Muñoz.
- pointer container : Containere for lagring av akkumulerte polymorfe objekter for å lette objektorientert programmering, av Thorsten Ottosen.
- egenskapskart : Konsepter som definerer grensesnitt som kartlegger objektnøkler til objektverdier, av Jeremy Siek.
- unordered : Unordered Associative Containers, av Daniel James.
- variant : Generisk, stabelbasert, sikker beholder av Eric Friedman og Itay Maman.
Iteratorer
- gil : Generisk bildebibliotek, av Lubomir Bourdev og Hailin Jin.
- graf : Generic Graph Bins and Algorithms, av Jeremy Siek og et team ved University of Notre Dame; nå vedlikeholdt av Andrew Sutton og Jeremiah Willcock.
- iterators : Iterator Construction Framework, Adapters, Concepts and More, av Dave Abrahams, Jeremy Siek og Thomas Witt.
- operatører : Aritmetiske malklasser og iteratorer, av Dave Abrahams og Jeremy Siek.
- tokenizer : Separasjon av en streng eller sekvens av tegn i en serie "tokens", av John Bandela.
Algoritmer
- foreach : BOOST_FOREACH-makro for enkelt å bla gjennom elementer i en sekvens, av Eric Niebler.
- gil : Generisk bildebibliotek, av Lubomir Bourdev og Hailin Jin.
- graf : Generiske grafkomponenter og algoritmer, av Jeremy Siek og et team ved University of Notre Dame.
- minmax : Utvidelser til standardbiblioteket for samtidige min/maks-beregninger, av Hervé Brönnimann.
- range : Et nytt rammeverk for generiske algoritmer som gir nye iteratorer, av Thorsten Ottosen.
- string_algo : Bibliotek med strengalgoritmer, av Pavol Droba.
- verktøy : Maler for neste() og forrige() funksjoner , av Dave Abrahams og andre.
Funksjonsprogrammering av høyere orden
- bind og mem_fn : Generalisert binding for funksjoner/objekter/pekere og medlemsmetoder, av Peter Dimov.
- funksjon : Wrappers for utsatte anrop eller tilbakeringinger, av Doug Gregor.
- funksjonell : Enhanced Object Function Adapters, av Mark Rodgers.
- funksjonell/fabrikk : Maler for dynamisk og statisk oppretting av objekter, av Tobias Schwinger.
- functional/forward : Adaptere som lar objekter med generiske funksjoner akseptere vilkårlige argumenter, av Tobias Schwinger.
- functional/hash : En TR1- hash som kan utvides til brukerdefinerte typer, av Daniel James.
- lambda : Definerer små navnløse funksjoner i gjeldende samtale, blant annet av Jaakko Järvi og Gary Powell.
- ref : Et bibliotek med verktøy for å sende referanser til generiske funksjoner, av Jaako Järvi, Peter Dimov, Doug Gregor og Dave Abrahams.
- signaler : Implementering av signalhåndtering og tilbakeringing, av Doug Gregor.
- signals2 : Andre versjon av biblioteket ovenfor, av Frank Mori Hess.
- result_of : Bestemmer typen uttrykk for et funksjonskall.
Generisk programmering
- call_traits : Definer typer for å sende parametere, av John Maddock, Howard Hinnant, ...
- konseptsjekk : Verktøy for generisk programmering, av Jeremy Siek.
- enable_if : Selektiv inkludering av funksjonsoverbelastninger, av Jaakko Järvi, Jeremiah Willcock og Andrew Lumsdaine.
- function_types : Kjennetegn på typer for samtaler, typekonstruksjon, av Tobias Schwinger.
- gil : Generisk bildebibliotek, av Lubomir Bourdev og Hailin Jin.
- in_place_factory , typed_in_place_factory : Generisk konstruksjon av objekter med en variert liste over argumenter, av Fernando Cacciola.
- operatører : Aritmetiske malklasser og iteratorer, av Dave Abrahams og Jeremy Siek.
- egenskapskart : Konsepter som definerer grensesnitt som kartlegger objektnøkler til objektverdier, av Jeremy Siek.
- static_assert : Static Assertions ( Compile -Time Assertions), av John Maddock.
- type_traits : Maler for de grunnleggende egenskapene til typer, av John Maddock, Steve Cleary, ...
Mal metaprogrammering
- function_types : Kjennetegn på typer for samtaler, typekonstruksjon, av Tobias Schwinger.
- fusion : Bibliotek for arbeid med tupler, inkludert ulike beholdere, algoritmer, ... av Joel de Guzman, Dan Marsden og Tobias Schwinger.
- mpl : Kompilerings-tids metaprogrammeringsramme for algoritmer, sekvenser og metafunksjonsklasser, av Aleksey Gurtovoy.
- proto : Innebygd domenespesifikk kompilatorverktøysett og uttrykksmalbibliotek av Eric Niebler.
- static_assert : Static Assertions ( Compile -Time Assertions), av John Maddock.
- type_traits : Maler for de grunnleggende egenskapene til typer, av John Maddock, Steve Cleary, ...
Preprosessor metaprogrammering
- preprosessor : Preprosessor metaprogrammeringsverktøy inkludert repetisjon og rekursjon, av Vesa Karvonen og Paul Mensonides.
Samtidig programmering
- asio : Bærbart nettverk og andre lavnivå-inn-/utgangsstrømmer, inkludert sockets, timere, vertsoppløsning, socket-strømmer, serielle porter, filbeskrivelser og Windows-behandlere, av Chris Kohlhoff.
- interprosess : Delt minne, minnekartlagte filer, mutexes for prosessdeling, tilstandsvariabler, containere og allokatorer, av Ion Gaztañaga.
- MPI : Message Passing Interface Library, for bruk i parallell applikasjonsprogrammering, av Douglas Gregor og Matthias Troyer.
- tråd : Portable C++ Multithreading, av William Kempf.
Matematikk og tall
- akkumulatorer : Rammeverk for inkrementelle beregninger, og innsamling av statistiske akkumulatorer, av Eric Niebler.
- heltall : Overskrifter for å håndtere heltallstyper.
- intervall : Utvider vanlige aritmetiske funksjoner til matematiske intervaller, av Guillaume Melquiond, Hervé Brönnimann og Sylvain Pion.
- matematikk : Ulike bidrag innen matematikk, av ulike forfattere.
- matematikk/komplekse tallalgoritmer : Komplekse tallalgoritmer som er inversene til trigonometriske funksjoner er for tiden til stede i C++-standarden, av John Maddock.
- math/common_factor : Største fellesfaktor og minste felles multiplum, av Daryle Walker.
- matematikk/oktonjon : Oktonioner, av Hubert Holin.
- math/quaternion : Quaternions, av Hubert Holin.
- matte/ spesielle_funksjoner: Et bredt utvalg av spesielle matematiske funksjoner, av John Maddock, Paul Bristow, Hubert Holin og Xiaogang Zhang.
- matematiske/statistiske fordelinger : Et bredt utvalg av univariate statistiske fordelinger og funksjoner som opererer på dem, av John Maddock og Paul Bristow.
- multi_array : Flerdimensjonale beholdere og adaptere for sammenhengende datamatriser, av Ron Garcia.
- numerisk/konvertering : Optimaliserte policybaserte numeriske konverteringer, av Fernando.
- operatorer : Aritmetiske klassemaler og iteratorer, av Dave Abrahams og Jeremy Siek.
- random : Et komplett tilfeldig tallgenereringssystem, av Jens Maurer.
- rasjonell : Klasse av rasjonelle tall, av Paul Moore.
- uBLAS : Basic Linear Algebra for Matrices, av Joerg Walter og Mathias Koch.
Korrigering og testing
- konseptsjekk : Verktøy for generisk programmering, av Jeremy Siek.
- static_assert : Static Assertions ( Compile -Time Assertions), av John Maddock.
- test : Støtte for enkel programtesting, full enhetstesting og overvåking av programkjøring, av Gennadiy Rozental.
Datastrukturer
- enhver : Trygg, generisk beholder for individuelle verdier av forskjellige verdityper, av Kevlin Henney.
- bimap : Toveis kart, av Matias Capeletto.
- compressed_pair : Empty Member Optimization, av John Maddock, Howard Hinnant, ...
- fusion : Bibliotek for arbeid med tupler, inkludert ulike beholdere, algoritmer, ... av Joel de Guzman, Dan Marsden og Tobias Schwinger.
- multi_index : Beholdere med flere tilgangsgrensesnitt som er kompatible med STL, av Joaquín M López Muñoz.
- pointer container : Containere for lagring av akkumulerte polymorfe objekter for å lette objektorientert programmering, av Thorsten Ottosen.
- egenskapstre : Datatrestruktur spesielt brukt for å lagre konfigurasjonsdata, av Marcin Kalicinski og Sebastian Redl.
- tuple : Definisjon av funksjoner som returnerer flere verdier og mer, av Jaakko Järvi.
- uuid : Universelt unik identifikator, av Andy Tompkins.
- variant : Generisk, stabelbasert, sikker beholder av Eric Friedman og Itay Maman.
Bildebehandling
- gil : Generisk bildebibliotek, av Lubomir Bourdev og Hailin Jin.
Entry/Exit
- asio : Bærbart nettverk og andre lavnivå-inn-/utgangsstrømmer, inkludert sockets, timere, vertsoppløsning, socket-strømmer, serielle porter, filbeskrivelser og Windows-behandlere, av Chris Kohlhoff.
- assign : Fylle containere med konstante eller genererte data, av Thorsten Ottosen.
- format : Typesikre formatoperasjoner (ligner printf), av Samuel Krempp.
- io-tilstandsparere : I/O-tilstandsparing for å unngå rotete data, av Daryle Walker.
- iostreams : Rammeverk for definerte strømmer, strømbuffere og input/output-filtre, av Jonathan Turkanis.
- program_options : Tilgang til konfigurasjonsdata gitt på kommandolinjen, i konfigurasjonsfiler eller andre kilder, av Vladimir Prus.
- serialisering : Serialisering av vilkårlige data for persistens og sortering, av Robert Ramey.
Støtte for andre programmeringsspråk
- python : Speiling av C++-klasser og -funksjoner i Python , av Dave Abrahams.
Minne
- pool : Memory Block Management, av Steve Cleary.
- smart_ptr : Maler for klasser med smarte pekere, av Greg Colvin, Beman Dawes, Peter Dimov og Darin Adler.
- verktøy : Klasse pluss funksjonsmaler som ikke kan kopieres checked_delete () , checked_array_delete() , next() , prior() , pluss medlemsbasert språk, av Abrahams og andre.
Parsing
- spirit : LL-parserrammeverk som representerer parsere direkte som EBNF-grammatikker i C++ "inline"-funksjoner, av Joel de Guzmán, Hartmut Kaiser, Dan Nuffer og team.
Programmeringsgrensesnitt
- funksjon : Wrappers for utsatte anrop eller tilbakeringinger, av Doug Gregor.
- parameter : Funksjoner som aksepterer argumenter ved navn, av David Abrahams og Daniel Wallin.
Diverse
- base-fra-medlem : Språk for å initialisere en basisklasse med et medlem, av Daryle Walker.
- compressed_pair : Empty Member Optimization, av John Maddock, Howard Hinnant, ...
- konvertering : Polymorphic and Lexical Converters, av Dave Abrahams og Kevlin Henney.
- crc : Cyclic Redundancy Code, av Daryle Walker.
- date_time : Library Date-Time, av Jeff Garland.
- unntak : Et bibliotek for transport av vilkårlige data i unntaksobjekter, og transport av unntak mellom tråder (N2179, av Emil Dotchevski.
- filsystem : Bærbare baner, iterasjon over kataloger og andre nyttige filsystemoperasjoner, av Beman Dawes.
- fluevekt : Mønsterdesign for å håndtere et stort antall svært overflødige objekter, av Joaquín M López Muñoz.
- lexical_cast : Generelle avstøpninger av bokstavelig tekst, som et heltall representert som en streng, eller omvendt, av Kevlin Henney.
- numerisk/konvertering : Optimaliserte numeriske konverteringer, av Fernando Cacciola.
- valgfritt : Wrapper for valgfrie verdier, av Fernando Cacciola.
- program_options : Tilgang til konfigurasjonsdata gitt på kommandolinjen, i konfigurasjonsfiler eller andre kilder, av Vladimir Prus.
- scope_exit : Utfør vilkårlig kode når du går ut av scopes, av Alexander Nasonov.
- statechart : Vilkårlig komplekse endelige tilstandsmaskiner kan implementeres i lett forståelig og vedlikeholdbar C++-kode, av Andreas Huber.
- swap : Enhanced Generic Swap Functions, av José Gauterin.
- system : Operativsystemstøtte, inkludert diagnostisk støtte som vil være en del av C++0x-standardbiblioteket, av Beman Dawes.
- timer : Hendelsestimer, fremdriftstidtaker, fremdriftseksempelklasser, av Beman Dawes.
- TR1 : En implementering av den tekniske rapporten om C++ Library Extensions, med andre Boost-biblioteker som base, av John Maddock.
- tribool : Bibliotek med 3-stats logiske typer, av Doug Gregor.
- typeof : Emulering av typen operatør , av Arkadiy Vertleyb og Peder Holt.
- enheter : Dimensjonsanalyse og enhet/mengde manipulasjon og konvertering, av Matthias Schabel og Steven Watanabe.
- verktøy : Klasse pluss funksjonsmaler som ikke kan kopieres checked_delete () , checked_array_delete() , next() , prior() , pluss medlemsbasert språk, av Abrahams og andre.
- value_initialized : Wrapper for initialisering av enhetlig syntaksverdi, av Fernando Cacciola, basert på den opprinnelige ideen til David Abrahams.
"Broken compiler"-løsninger
- kompatibilitet : Hjelp for ikke-standardiserte biblioteker, av Ralf Grosse-Kunstleve og Jens Maurer.
- config : Hjelper med å øke bibliotekutviklere med å tilpasse seg kompilatorens særegenheter. Den er ikke beregnet på bibliotekbrukere.
Pensjonerte Boost-biblioteker
- komponer : Adaptere for funksjonell komposisjon for STL, av Nicolai Josuttis. Fjernet i versjon 1.32. Bruk Bind eller Lambda i stedet.
Referanser
- ^ "Boost C++ Community " . Hentet 15. juli 2010 . Selv om Boost ble startet av medlemmer av C++ Standards Committee Library Working Group, har deltakelsen utvidet seg til å omfatte tusenvis av programmerere fra C++-fellesskapet for øvrig. »
- ↑ BoostSoftware License 1.0
Eksterne lenker