144 | | * '''Links:''' [http://svn.boost.org/svn/boost/sandbox/auto_function Boost Sandbox] |
145 | | * '''Categories:''' [#Utilities Utilities] |
146 | | * '''Description:''' "auto function" macro that uses trailing return type |
147 | | syntax with decltype with 1-liner functions that automatically repeats the |
148 | | same expression in both the return type and the return statement. |
| 144 | * '''Links:''' [http://svn.boost.org/svn/boost/sandbox/auto_function Boost Sandbox] [http://www.rivorus.com/auto_function Documentation] |
| 145 | * '''Categories:''' [#Utilities Utilities] [#GenericProgramming Generic Programming] |
| 146 | * '''Description:''' Boost.Auto_Function is a library focused on making it simple for programmers to express functions and function declarations that have an automatically deduced return type and to provide a way to place arbitrary compile-time requirements on a function's signature. |
| 1090 | --------------------------------------------------------------------------------------------------- |
| 1091 | == Boost.TypeErasure == |
| 1092 | * '''Author(s):''' Steven Watanabe |
| 1093 | * '''Version:''' |
| 1094 | * '''State:''' |
| 1095 | * '''Last upload:'''2011 Mai 22 |
| 1096 | * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=type_erasure.zip&directory=& Boost Vault] |
| 1097 | * '''Categories:''' [#GenericProgramming Generic Programming] |
| 1098 | * '''Description:''' C++ provides runtime polymorphism through virtual functions. They are a very useful feature, but they do have some limitations. |
| 1099 | |
| 1100 | * They are intrusive. In generic programming, we can design an interface which allows third-party types to be adapted to it. |
| 1101 | * They require dynamic memory management. Of course, most of the problems can be avoided by using an appropriate smart pointer type. Even so, it still acts like a pointer rather than a value. |
| 1102 | * Virtual functions' ability to apply multiple independent concepts to a single object is limited. |
| 1103 | |
| 1104 | The Boost.TypeErasure library solves these problems allowing us to mirror static generic programming at runtime. |
| 1105 | |