Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikibooksThe Free Textbook Project
Search

More C++ Idioms

75% developed
From Wikibooks, open books for an open world
APDF version is available. (info)

Preface

[edit |edit source]
More C++ IdiomsC++ has indeed become too "expert friendly" -- Bjarne Stroustrup,The Problem with Programming, Technology Review, Nov 2006.

Stroustrup's saying is true because experts are intimately familiar with the idioms in the language. With the increase in the idioms a programmer understands, the language becomes friendlier to them. The objective of this open-content book is to present modern C++ idioms to programmers who have moderate level of familiarity with C++, and help elevate their knowledge so that C++ feels much friendlier to them. It is designed to be an exhaustive catalog of reusable idioms that expert C++ programmers often use while programming or designing using C++. This is an effort to capture their techniques and vocabulary into a single work. This book describes the idioms in a regular format:Name-Intent-Motivation-Solution-References, which is succinct and helps speed learning. By their nature, idioms tend to have appeared in the C++ community and in published work many times. An effort has been made to refer to the original source(s) where possible; if you find a reference incomplete or incorrect, please feel free to suggest or make improvements.

The world is invited to catalog reusable pieces of C++ knowledge (similar to the book on design patterns by GoF). The goal here is to first build an exhaustive catalog of modern C++ idioms and later evolve it into an idiom language, just like a pattern language. Finally, the contents of this book can be redistributed under the terms of theGNU Free Documentation License.

Aimed toward: Anyone with an intermediate level of knowledge in C++ and supported language paradigms

More Information

[edit |edit source]
Aprintable version of More C++ Idioms is available. (edit it)
This book is intended foradvanced readers.
This book requiresC++ as a corequisite.

Authors |Praise |Guidelines for Authors |GNU Free Documentation License

RSS Logo

More C++ Idioms Recent Changes RSS 2.0





Table of Contents

[edit |edit source]

Note: synonyms for each idiom are listed in parentheses.

  1. Acyclic Visitor Pattern TODO
  2. Address Of75% developed  as of 9 October 2011
  3. Algebraic Hierarchy75% developed  as of 12 June 2008
  4. Attach by Initialization75% developed  as of 22 October 2011
  5. Attorney-Client75% developed  as of 9 October 2011
  6. Barton-Nackman trick75% developed  as of 21 February 2011
  7. Base-from-Member75% developed  as of 6 August 2007
  8. Boost mutant75% developed  as of 9 May 2010
  9. Calling Virtuals During Initialization75% developed  as of 6 August 2007
  10. Capability Query100% developed  as of 21 February 2011
  11. Checked delete75% developed  as of 15 August 2007
  12. Clear-and-minimize75% developed  as of 10 August 2007
  13. Coercion by Member Template100% developed  as of 14 August 2007
  14. Computational Constructor75% developed  as of 9 October 2011
  15. Concrete Data Type75% developed  as of 17 March 2008
  16. Construct On First Use75% developed  as of 6 August 2007
  17. Construction Tracker75% developed  as of 6 August 2007
  18. Copy-and-swap75% developed  as of 10 August 2007
  19. Copy-on-write100% developed  as of 20 May 2009
  20. Thread-safe Copy-on-write100% developed  as of 20 May 2009
  21. Intrusive reference counting (Counted Body)75% developed  as of 16 November 2007
  22. Covariant Return Types TODO
  23. Curiously Recurring Template Pattern (CRTP)100% developed  as of 7 June 2024
  24. Deprecate and Delete TODO
  25. Empty Base Optimization (EBO)75% developed  as of 9 October 2011
  26. enable-if75% developed  as of 21 Feb 2011
  27. Erase-Remove75% developed  as of 17 November 2007
  28. Execute-Around Pointer75% developed  as of 6 August 2007
  29. Exploding Return Type TODO
  30. Export Guard Macro TODO
  31. Expression-template75% developed  as of 6 August 2007
  32. Fake Vtable TODO
  33. Fast Pimpl0% developed  as of 6 August 2007 TODO
  34. Final Class75% developed  as of 10 May 2010
  35. Free Function Allocators75% developed  as of 18 June 2014
  36. Function Object TODO
  37. Function Poisoning TODO
  38. Generic Container Idioms75% developed  as of 22 November 2007
  39. Hierarchy Generation TODO
  40. Implicit conversions TODO
  41. Include Guard Macro75% developed  as of 3 November 2007
  42. Inline Guard Macro75% developed  as of 3 November 2007
  43. Inner Class75% developed  as of 31 August 2007
  44. Int-To-Type75% developed  as of 21 September 2008
  45. Interface Class75% developed  as of 6 January 2008
  46. Iterator Pair100% developed  as of 28 October 2007
  47. Making New Friends75% developed  as of 5 January 2008
  48. Metafunction75% developed  as of 15 September 2008
  49. Move Constructor100% developed  as of 13 August 2007
  50. Multi-statement Macro75% developed  as of 16 February 2008
  51. Member Detector75% developed  as of 10 May 2010
  52. Named Constructor75% developed  as of 28 September 2008
  53. Named External Argument TODO
  54. Named Loop (labeled loop)75% developed  as of 9 May 2010
  55. Named Parameter75% developed  as of 11 May 2010
  56. Named Template Parameters TODO
  57. Nifty Counter (Schwarz Counter)75% developed  as of 6 August 2007
  58. Non-copyable Mixin75% developed  as of 6 August 2007
  59. Non-member Non-friend Function0% developed  as of 10 March 2008 TODO
  60. Non-throwing swap75% developed  as of 9 January 2008
  61. Non-Virtual Interface (NVI, Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals)75% developed  as of 12 June 2008
  62. nullptr75% developed  as of 3 November 2007
  63. Object Generator75% developed  as of 14 September 2008
  64. Object Template TODO
  65. Parameterized Base Class (Parameterized Inheritance)75% developed  as of 6 August 2007
  66. Pimpl (Handle Body, Compilation Firewall, Cheshire Cat)0% developed  as of 2 March 2011
  67. Policy Clone (Metafunction wrapper)100% developed  as of 14 August 2007
  68. Policy-based Design TODO
  69. Polymorphic Exception75% developed  as of 28 September 2008
  70. Polymorphic Value Types75% developed  as of 21 June 2024
  71. Recursive Type Composition TODO
  72. Requiring or Prohibiting Heap-based Objects
  73. Resource Acquisition Is Initialization (RAII, Execute-Around Object, Scoped Locking)100% developed  as of 6 November 2007
  74. Resource Return75% developed  as of 3 November 2007
  75. Return Type Resolver75% developed  as of 10 May 2010
  76. Runtime Static Initialization Order Idioms75% developed  as of 6 August 2007
  77. Safe bool75% developed  as of 6 August 2007
  78. Scope Guard100% developed  as of 14 August 2007
  79. Substitution Failure Is Not An Error (SFINAE)75% developed  as of 12 May 2012
  80. Shortening Long Template Names TODO
  81. Shrink-to-fit75% developed  as of 10 August 2007
  82. Small Object Optimization TODO
  83. Smart Pointer75% developed  as of 17 November 2007
  84. Storage Class Tracker TODO
  85. Tag Dispatching50% developed  as of 20 June 2024
  86. Temporary Base Class75% developed  as of 6 August 2007
  87. Temporary Proxy75% developed  as of 6 August 2007
  88. The result_of technique TODO
  89. Thin Template75% developed  as of 6 August 2007
  90. Thread-Safe Interface TODO
  91. Traits75% developed  as of 20 June 2024
  92. Type Erasure75% developed  as of 4 February 2015
  93. Type Generator (Templated Typedef)75% developed  as of 14 September 2008
  94. Type Safe Enum75% developed  as of 11 May 2010
  95. Type Selection75% developed  as of 9 May 2010
  96. Virtual Constructor75% developed  as of 17 March 2008
  97. Virtual Friend Function75% developed  as of 10 May 2010

Advanced idioms

[edit |edit source]

These are some more advanced C++ idioms.

  1. Envelope Letter75% developed  as of 1 February 2008 TODO


Deprecated idioms

[edit |edit source]
  1. Const auto_ptr75% developed  as of 15 August 2007


Wikibook Development Stages
Sparse text0%Developing text25%Maturing text50%Developed text75%Comprehensive text100%
page traffic for this month.
Retrieved from "https://en.wikibooks.org/w/index.php?title=More_C%2B%2B_Idioms&oldid=4444220"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp