libsigc++
Stabil frisättning | 3.0.3 / 25 mars 2020
|
---|---|
Förhandsgranska release | 2.99.12 / 30 oktober 2018
|
Förvar | |
Skrivet i | C++ |
Typ | bibliotek eller ramverk |
Hemsida |
|
libsigc++ är ett C++ -bibliotek för typsäkra återuppringningar .
libsigc++ implementerar ett callback-system för användning i abstrakta gränssnitt och allmän programmering. libsigc++ är en av de tidigaste implementeringarna av signal- och slotskonceptet implementerat med C++- mallmetaprogrammering . Den skapades som ett alternativ till användningen av en metakompilator som finns i implementeringen av signaler och slots i Qt . libsigc++ uppstod som en del av gtkmm -projektet 1997 och skrevs senare om till ett fristående bibliotek. Varje signal har en speciell funktionsprofil som anger antalet argument och argumenttyp associerade med återuppringningen. Funktioner och metoder lindas sedan med mallanrop för att producera funktionsobjekt (funktioner) som kan bindas till en signal. Varje signal kan kopplas till flera funktioner, vilket skapar ett observatörsmönster genom vilket ett meddelande kan distribueras till flera anonyma lyssnarobjekt. Referensräkningsbaserad spårning av objekts livslängd användes för att koppla bort funktionerna från signaler när objekt raderas. Användningen av mallar tillåts för kompileringstidstypsäker verifiering av anslutningar. Tillägget av denna strikta kompileringstidskontroll krävde tillägget av malltypsändningsadaptrar som konverterar funktionsåteruppringningsprofilen för att matcha det erforderliga signalmönstret.
libsigc++ var en naturlig expansion av C++-standardbiblioteksfunktionerna till spårning av objekt som är nödvändiga för att implementera observatörsmönstret. Det inspirerade flera C++-mallbaserade signal- och slotimplementationer inklusive signalimplementeringen som används i boost C++-biblioteken .
libsigc++ släpps som fri programvara under GNU Lesser General Public License (LGPL).
externa länkar