*More C++ Idioms*

More C++ Idioms

Table of Contents[edit]

Note: synonyms for each idiom are listed in parentheses.

  1. Address Of 75% developed as of 9 Oct 2011
  2. Algebraic Hierarchy 75% developed as of 12 June 2008
  3. Attach by Initialization 75% developed as of 22 Oct 2011
  4. Attorney-Client 75% developed as of 9 Oct 2011
  5. Barton-Nackman trick 75% developed as of 21 Feb 2011
  6. Base-from-Member 75% developed as of 6 August 2007
  7. Boost mutant 75% developed as of 9 May 2010
  8. Calling Virtuals During Initialization 75% developed as of 6 August 2007
  9. Capability Query 100% developed as of 21 Feb 2011
  10. Checked delete 75% developed as of 15 August 2007
  11. Clear-and-minimize 75% developed as of 10 August 2007
  12. Coercion by Member Template 100% developed as of 14 August 2007
  13. Computational Constructor 75% developed as of 9 Oct 2011
  14. Concrete Data Type 75% developed as of 17 March 2008
  15. Construct On First Use 75% developed as of 6 August 2007
  16. Construction Tracker 75% developed as of 6 August 2007
  17. Copy-and-swap 75% developed as of 10 August 2007
  18. Copy-on-write 100% developed as of 20 May 2009
  19. Intrusive reference counting (Counted Body) 75% developed as of 16 November 2007
  20. Covariant Return Types TODO
  21. Curiously Recurring Template Pattern (CRTP) 75% developed as of 6 August 2007
  22. Empty Base Optimization (EBO) 75% developed as of 9 Oct 2011
  23. enable-if 75% developed as of 21 Feb 2011
  24. Erase-Remove 75% developed as of 17 November 2007
  25. Execute-Around Pointer 75% developed as of 6 August 2007
  26. Exploding Return Type TODO
  27. Export Guard Macro TODO
  28. Expression-template 75% developed as of 6 August 2007
  29. Fake Vtable TODO
  30. Fast Pimpl 0% developed as of 6 August 2007 TODO
  31. Final Class 75% developed as of 10 May 2010
  32. Free Function Allocators75% developed as of 18 June 2014
  33. Function Object TODO
  34. Generic Container Idioms 75% developed as of 22 November 2007
  35. Hierarchy Generation TODO
  36. Implicit conversions TODO
  37. Include Guard Macro 75% developed as of 3 November 2007
  38. Inline Guard Macro 75% developed as of 3 November 2007
  39. Inner Class 75% developed as of 31 August 2007
  40. Int-To-Type 75% developed as of 21 September 2008
  41. Interface Class 75% developed as of 6 January 2008
  42. Iterator Pair 100% developed as of 28 October 2007
  43. Making New Friends 75% developed as of 5 January 2008
  44. Metafunction 75% developed as of 15 September 2008
  45. Move Constructor 100% developed as of 13 August 2007
  46. Multi-statement Macro 75% developed as of 16 February 2008
  47. Member Detector 75% developed as of 10 May 2010
  48. Named Constructor 75% developed as of 28 September 2008
  49. Named External Argument TODO
  50. Named Loop (labeled loop) 75% developed as of 9 May 2010
  51. Named Parameter 75% developed as of 11 May 2010
  52. Named Template Parameters TODO
  53. Nifty Counter (Schwarz Counter) 75% developed as of 6 August 2007
  54. Non-copyable Mixin 75% developed as of 6 August 2007
  55. Non-member Non-friend Function 0% developed as of 10 March 2008 TODO
  56. Non-throwing swap 75% developed as of 9 January 2008
  57. Non-Virtual Interface (NVI, Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals) 75% developed as of 12 June 2008
  58. nullptr 75% developed as of 3 November 2007
  59. Object Generator 75% developed as of 14 September 2008
  60. Object Template TODO
  61. Parameterized Base Class (Parameterized Inheritance) 75% developed as of 6 August 2007
  62. Pimpl (Handle Body, Compilation Firewall, Cheshire Cat) 0% developed as of 2nd March 2011
  63. Policy Clone (Metafunction wrapper) 100% developed as of 14 August 2007
  64. Policy-based Design TODO
  65. Polymorphic Exception 75% developed as of 28 September 2008
  66. Polymorphic Value Types 0% developed as of 24 June 2012 TODO
  67. Recursive Type Composition TODO
  68. Requiring or Prohibiting Heap-based Objects
  69. Resource Acquisition Is Initialization (RAII, Execute-Around Object, Scoped Locking) 100% developed as of 6 November 2007
  70. Resource Return 75% developed as of 3 November 2007
  71. Return Type Resolver 75% developed as of 10 May 2010
  72. Runtime Static Initialization Order Idioms 75% developed as of 6 August 2007
  73. Safe bool 75% developed as of 6 August 2007
  74. Scope Guard 100% developed as of 14 August 2007
  75. Substitution Failure Is Not An Error (SFINAE) 75% developed as of 12 May 2012
  76. Shortening Long Template Names TODO
  77. Shrink-to-fit 75% developed as of 10 August 2007
  78. Small Object Optimization TODO
  79. Smart Pointer 75% developed as of 17 November 2007
  80. Storage Class Tracker TODO
  81. Tag Dispatching 0% developed as of 21 October 2007 TODO
  82. Temporary Base Class 75% developed as of 6 August 2007
  83. Temporary Proxy 75% developed as of 6 August 2007
  84. The result_of technique TODO
  85. Thin Template 75% developed as of 6 August 2007
  86. Traits 0% developed as of 21 October 2007 TODO
  87. Type Erasure 75% developed as of 4 February 2015
  88. Type Generator (Templated Typedef) 75% developed as of 14 September 2008
  89. Type Safe Enum 75% developed as of 11 May 2010
  90. Type Selection 75% developed as of 9 May 2010
  91. Virtual Constructor 75% developed as of 17 March 2008
  92. Virtual Friend Function 75% developed as of 10 May 2010

Advanced idioms[edit]

These are some more advanced C++ idioms.

  1. Envelope Letter 75% developed as of 1 February 2008 TODO

Ref

https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms

posted on 2020-04-10 16:06  cutepig  阅读(202)  评论(0编辑  收藏  举报

导航