reklama - zainteresowany?

Język C++. Metaprogramowanie za pomocą szablonów - Helion

Język C++. Metaprogramowanie za pomocą szablonów
Autor: David Abrahams, Aleksey Gurtovoy
Tytuł oryginału: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
Tłumaczenie: Rafał Jońca
ISBN: 83-7361-935-6
stron: 336, Format: B5, okładka: miękka
Data wydania: 2005-07-12
Księgarnia: Helion

Cena książki: 39,90 zł

Dodaj do koszyka Język C++. Metaprogramowanie za pomocą szablonów

Tagi: C++ - Programowanie

Metaprogramowanie to jedna z nowości, które pojawiły się ostatnio w świecie języka C++. Metaprogram to program będący w stanie modyfikować lub generować kod innego programu. Wykorzystanie zasad metaprogramowania pozwala na przykład na dynamiczną modyfikację programu podczas jego kompilacji. Pierwszym językiem pozwalającym na korzystanie z możliwości metaprogramowania jest C++ biblioteką STL.

"C++. Metaprogramowanie za pomocą szablonów" to książka przeznaczona dla tych programistów, którzy korzystają już z biblioteki STL i chcą zastosować ją do tworzenia metaprogramów. Opisano w niej zasady metaprogramowania, typy możliwe do wykorzystania w szablonach przeznaczonych do implementacji funkcji związanych z metaprogramowaniem oraz sposoby tworzenia szablonów modyfikujących programy podczas kompilacji.

  • Typy i metafunkcje
  • Operacje, sekwencje i iteratory
  • Algorytmy biblioteki MPL i tworzenie wÅ‚asnych algorytmów
  • Usuwanie bÅ‚Ä™dów w szablonach
  • Modyfikowanie programu w czasie kompilacji
  • JÄ™zyk DSEL

Metaprogramowanie to nowość. Poznaj je już teraz, aby być przygotowanym na dzień, w którym stanie się standardem.

Dodaj do koszyka Język C++. Metaprogramowanie za pomocą szablonów

Dodaj do koszyka Język C++. Metaprogramowanie za pomocą szablonów

Spis treści

Język C++. Metaprogramowanie za pomocą szablonów -- spis treści

Przedmowa (7)

Podziękowania (9)

Struktura książki (11)

Rozdział 1. Wprowadzenie (13)

  • 1.1. Zaczynamy (13)
  • 1.2. Czym jest metaprogram? (14)
  • 1.3. Metaprogramowanie w jÄ™zyku macierzystym (15)
  • 1.4. Metaprogramowanie w jÄ™zyku C++ (15)
  • 1.5. Dlaczego metaprogramowanie? (18)
  • 1.6. Kiedy stosować metaprogramowanie? (20)
  • 1.7. Dlaczego biblioteka metaprogramowania? (20)

Rozdział 2. Cechy typu i manipulowanie nim (23)

  • 2.1. PowiÄ…zanie typów (23)
  • 2.2. Metafunkcje (26)
  • 2.3. Metafunkcje numeryczne (29)
  • 2.4. Dokonywanie wyborów na etapie kompilacji (30)
  • 2.5. Krótka podróż po bibliotece Boost Type Traits (34)
  • 2.6. Metafunkcje bezargumentowe (39)
  • 2.7. Definicja metafunkcji (40)
  • 2.8. Historia (40)
  • 2.9. Szczegóły (41)
  • 2.10. Ćwiczenia (44)

Rozdział 3. Dokładniejsze omówienie metafunkcji (47)

  • 3.1. Analiza wymiarowa (47)
  • 3.2. Metafunkcje wyższych rzÄ™dów (56)
  • 3.3. ObsÅ‚uga symboli zastÄ™pczych (58)
  • 3.4. WiÄ™cej możliwoÅ›ci lambdy (60)
  • 3.5. Szczegóły implementacji lambda (61)
  • 3.6. Szczegóły (64)
  • 3.7. Ćwiczenia (66)

Rozdział 4. Operacje i otoczki typów całkowitych (69)

  • 4.1. Operacje i otoczki typu logicznego (69)
  • 4.2. Operacje i otoczki liczb caÅ‚kowitych (76)
  • 4.3. Ćwiczenia (80)

Rozdział 5. Sekwencje i iteratory (83)

  • 5.1. PojÄ™cia (83)
  • 5.2. Sekwencje i algorytmy (84)
  • 5.3. Iteratory (85)
  • 5.4. PojÄ™cia zwiÄ…zane z iteratorem (85)
  • 5.5. PojÄ™cia sekwencji (89)
  • 5.6. Równość sekwencji (94)
  • 5.7. WewnÄ™trzne operacje sekwencji (94)
  • 5.8. Klasy sekwencji (95)
  • 5.9. Otoczki sekwencji liczb caÅ‚kowitych (99)
  • 5.10. Wyprowadzanie sekwencji (100)
  • 5.11. Pisanie wÅ‚asnych sekwencji (101)
  • 5.12. Szczegóły (110)
  • 5.13. Ćwiczenia (111)

Rozdział 6. Algorytmy (115)

  • 6.1. Algorytmy, idiomy, wielokrotne użycie i abstrakcja (115)
  • 6.2. Algorytmy biblioteki MPL (117)
  • 6.3. Insertery (118)
  • 6.4. Podstawowe algorytmy sekwencji (121)
  • 6.5. Algorytmy zapytaÅ„ (123)
  • 6.6. Algorytmy budowania sekwencji (123)
  • 6.7. Pisanie wÅ‚asnych algorytmów (126)
  • 6.8. Szczegóły (127)
  • 6.9. Ćwiczenia (128)

Rozdział 7. Widoki i adaptery iteratorów (131)

  • 7.1. Kilka przykÅ‚adów (131)
  • 7.2. PojÄ™cie widoku (137)
  • 7.3. Adaptery iteratora (137)
  • 7.4. Tworzenie wÅ‚asnego widoku (138)
  • 7.5. Historia (140)
  • 7.6. Ćwiczenia (140)

Rozdział 8. Diagnostyka (143)

  • 8.1. Powieść o poprawianiu bÅ‚Ä™dów (143)
  • 8.2. Korzystanie z narzÄ™dzi do analizy wyników diagnostyki (152)
  • 8.3. Zamierzone generowanie komunikatów diagnostycznych (156)
  • 8.4. Historia (167)
  • 8.5. Szczegóły (167)
  • 8.6. Ćwiczenia (168)

Rozdział 9. Przekraczanie granicy między czasem kompilacji i wykonywania programu (171)

  • 9.1. Algorytm for_each (171)
  • 9.2. Wybór implementacji (174)
  • 9.3. Generatory obiektów (178)
  • 9.4. Wybór struktury (180)
  • 9.5. ZÅ‚ożenie klas (184)
  • 9.6. Wskaźniki na funkcje (skÅ‚adowe) jako argumenty szablonów (187)
  • 9.7. Wymazywanie typu (189)
  • 9.8. Wzorzec zadziwiajÄ…co powracajÄ…cego szablonu (195)
  • 9.9. Jawne zarzÄ…dzanie zbiorem przeciążeÅ„ (200)
  • 9.10. Sztuczka z sizeof (202)
  • 9.11. Podsumowanie (203)
  • 9.12. Ćwiczenia (203)

Rozdział 10. Język osadzony zależny od dziedziny (205)

  • 10.1. MaÅ‚y jÄ™zyk... (205)
  • 10.2. ...przechodzi dÅ‚ugÄ… drogÄ™ (208)
  • 10.3. JÄ™zyki DSL - podejÅ›cie odwrotne (215)
  • 10.4. C++ jako jÄ™zyk gospodarza (218)
  • 10.5. Blitz++ i szablony wyrażeÅ„ (220)
  • 10.6. JÄ™zyki DSEL ogólnego stosowania (225)
  • 10.7. Biblioteka Boost Spirit (234)
  • 10.8. Podsumowanie (240)
  • 10.9. Ćwiczenia (241)

Rozdział 11. Przykład projektowania języka DSEL (243)

  • 11.1. Automaty skoÅ„czone (243)
  • 11.2. Cele projektu szkieletu (246)
  • 11.3. Podstawy interfejsu szkieletu (247)
  • 11.4. Wybór jÄ™zyka DSL (248)
  • 11.5. Implementacja (254)
  • 11.6. Analiza (259)
  • 11.7. Kierunek rozwoju jÄ™zyka (261)
  • 11.8. Ćwiczenia (261)

Dodatek A Wprowadzenie do metaprogramowania za pomocÄ… preprocesora (265)

  • A.1. Motywacja (265)
  • A.2. Podstawowe abstrakcje preprocesora (267)
  • A.3. Struktura biblioteki preprocesora (269)
  • A.4. Abstrakcje biblioteki preprocesora (269)
  • A.5. Ćwiczenie (286)

Dodatek B SÅ‚owa kluczowe typename i template (287)

  • B.1. Zagadnienia (288)
  • B.2. ReguÅ‚y (291)

Dodatek C Wydajność kompilacji (299)

  • C.1. Model obliczeniowy (299)
  • C.2. ZarzÄ…dzanie czasem kompilacji (302)
  • C.3. Testy (302)

Dodatek D Podsumowanie przenośności biblioteki MPL (315)

Bibliografia (317)

Skorowidz (321)

Dodaj do koszyka Język C++. Metaprogramowanie za pomocą szablonów

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.