tti_reason.html 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>Why the TTI Library ?</title>
  5. <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
  6. <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
  7. <link rel="home" href="../index.html" title="Chapter&#160;1.&#160;The Type Traits Introspection Library">
  8. <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;The Type Traits Introspection Library">
  9. <link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;The Type Traits Introspection Library">
  10. <link rel="next" href="tti_terminology.html" title="Terminology">
  11. </head>
  12. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  13. <table cellpadding="2" width="100%"><tr>
  14. <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
  15. <td align="center"><a href="../../../../../index.html">Home</a></td>
  16. <td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
  17. <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
  18. <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
  19. <td align="center"><a href="../../../../../more/index.htm">More</a></td>
  20. </tr></table>
  21. <hr>
  22. <div class="spirit-nav">
  23. <a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tti_terminology.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="section">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="the_type_traits_introspection_library.tti_reason"></a><a class="link" href="tti_reason.html" title="Why the TTI Library ?">Why the
  28. TTI Library ?</a>
  29. </h2></div></div></div>
  30. <p>
  31. In the Boost Type Traits library there is compile time functionality for querying
  32. information about a C++ type. This information is very useful during template
  33. metaprogramming and forms the basis, along with the constructs of the Boost
  34. MPL library, and some other compile time libraries, for much of the template
  35. metaprogramming in Boost.
  36. </p>
  37. <p>
  38. One area which is mostly missing in the Type Traits library is the ability
  39. to determine what C++ inner elements are part of a type, where the inner element
  40. may be a nested type, function or data member, static function or static data
  41. member, or class template.
  42. </p>
  43. <p>
  44. There has been some of this functionality in Boost, both in already existing
  45. libraries and in libraries on which others have worked but which were never
  46. submitted for acceptance into Boost. An example with an existing Boost library
  47. is Boost MPL, where there is functionality, in the form of macros and metafunctions,
  48. to determine whether an enclosing type has a particular nested type or nested
  49. class template. An example with a library which was never submitted to Boost
  50. is the Concept Traits Library from which much of the functionality of this
  51. library, related to type traits, was taken and expanded.
  52. </p>
  53. <p>
  54. It may also be possible that some other Boost libraries, highly dependent on
  55. advanced template metaprogramming techniques, also have internal functionality
  56. to introspect a type's elements at compile time. But to the best of my knowledge
  57. this sort of functionality has never been incorporated in a single Boost library.
  58. This library is an attempt to do so, and to bring a recognizable set of interfaces
  59. to compile-time type introspection to Boost so that other metaprogramming libraries
  60. can use them for their own needs.
  61. </p>
  62. </div>
  63. <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  64. <td align="left"></td>
  65. <td align="right"><div class="copyright-footer">Copyright &#169; 2011-2013 Tropic Software
  66. East Inc<p>
  67. Distributed under the Boost Software License, Version 1.0. (See accompanying
  68. file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
  69. </p>
  70. </div></td>
  71. </tr></table>
  72. <hr>
  73. <div class="spirit-nav">
  74. <a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tti_terminology.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  75. </div>
  76. </body>
  77. </html>