Micro template library A library for building device drivers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

integral_8h.tex 8.0 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. \hypertarget{integral_8h}{}\section{include/utl/meta/integral.h File Reference}
  2. \label{integral_8h}\index{include/utl/meta/integral.\+h@{include/utl/meta/integral.\+h}}
  3. {\ttfamily \#include $<$utl/core/impl.\+h$>$}\newline
  4. {\ttfamily \#include $<$type\+\_\+traits$>$}\newline
  5. {\ttfamily \#include $<$utility$>$}\newline
  6. \subsection*{Classes}
  7. \begin{DoxyCompactItemize}
  8. \item
  9. struct \mbox{\hyperlink{structutl_1_1meta_1_1nil__}{utl\+::meta\+::nil\+\_\+}}
  10. \end{DoxyCompactItemize}
  11. \subsection*{Namespaces}
  12. \begin{DoxyCompactItemize}
  13. \item
  14. \mbox{\hyperlink{namespaceutl}{utl}}
  15. \begin{DoxyCompactList}\small\item\em S\+TL\textquotesingle{}s core language concepts. \end{DoxyCompactList}\item
  16. \mbox{\hyperlink{namespaceutl_1_1meta}{utl\+::meta}}
  17. \end{DoxyCompactItemize}
  18. \subsection*{Typedefs}
  19. \begin{DoxyCompactItemize}
  20. \item
  21. {\footnotesize template$<$typename Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa5a37adba244ff4286f994111c4c02ea}{utl\+::meta\+::eval}} = typename Tp\+::type
  22. \begin{DoxyCompactList}\small\item\em Type alias for {\ttfamily Tp\+::type}. Used to evaluate/extract return type of metafunctions. \end{DoxyCompactList}\item
  23. using \mbox{\hyperlink{namespaceutl_1_1meta_af0c85cc6480a9e7a8e4fb7d8f936f01b}{utl\+::meta\+::\+Npos}} = size\+\_\+$<$ index\+\_\+t(-\/1)$>$
  24. \begin{DoxyCompactList}\small\item\em The last position we can express for indexing. \end{DoxyCompactList}\end{DoxyCompactItemize}
  25. \textbf{ }\par
  26. \begin{DoxyCompactItemize}
  27. \item
  28. {\footnotesize template$<$typename Tp , Tp v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ad60242f998d1d236b7b9744b7b09c8f2}{utl\+::meta\+::integral\+\_\+}} = std\+::integral\+\_\+constant$<$ Tp, v $>$
  29. \end{DoxyCompactItemize}
  30. \textbf{ }\par
  31. \begin{DoxyCompactItemize}
  32. \item
  33. {\footnotesize template$<$bool v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a0bec5828d2df0edfb4bc084773a438f6}{utl\+::meta\+::bool\+\_\+}} = integral\+\_\+$<$ bool, v $>$
  34. \begin{DoxyCompactList}\small\item\em bool\+\_\+ type\+: integral constant wrapper for bool \end{DoxyCompactList}\item
  35. using \mbox{\hyperlink{namespaceutl_1_1meta_ae9a5a8fbe8202785f059935af219fb97}{utl\+::meta\+::true\+\_\+}} = bool\+\_\+$<$ true $>$
  36. \begin{DoxyCompactList}\small\item\em The type used as a compile-\/time boolean with true value. \end{DoxyCompactList}\item
  37. using \mbox{\hyperlink{namespaceutl_1_1meta_a55511dbaa0adb605ce22dcec11f8d22d}{utl\+::meta\+::false\+\_\+}} = bool\+\_\+$<$ false $>$
  38. \begin{DoxyCompactList}\small\item\em The type used as a compile-\/time boolean with false value. \end{DoxyCompactList}\item
  39. {\footnotesize template$<$int8\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa0ca1890dde0298c4380f94582cc2186}{utl\+::meta\+::int8\+\_\+}} = integral\+\_\+$<$ int8\+\_\+t, v $>$
  40. \begin{DoxyCompactList}\small\item\em int8\+\_\+ type\+: integral constant wrapper for {\ttfamily int8\+\_\+t} \end{DoxyCompactList}\item
  41. {\footnotesize template$<$uint8\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aae9c77ad9349e98af6cdc41e9b0090f8}{utl\+::meta\+::uint8\+\_\+}} = integral\+\_\+$<$ uint8\+\_\+t, v $>$
  42. \begin{DoxyCompactList}\small\item\em uint8\+\_\+ type\+: integral constant wrapper for {\ttfamily uint8\+\_\+t} \end{DoxyCompactList}\item
  43. {\footnotesize template$<$int16\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a65bf025970a7ec0fd488c50a1b9c1038}{utl\+::meta\+::int16\+\_\+}} = integral\+\_\+$<$ int16\+\_\+t, v $>$
  44. \begin{DoxyCompactList}\small\item\em int16\+\_\+ type\+: integral constant wrapper for {\ttfamily int16\+\_\+t} \end{DoxyCompactList}\item
  45. {\footnotesize template$<$uint16\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_af1b0b8109e3e61032c24d148202b6966}{utl\+::meta\+::uint16\+\_\+}} = integral\+\_\+$<$ uint16\+\_\+t, v $>$
  46. \begin{DoxyCompactList}\small\item\em uint16\+\_\+ type\+: integral constant wrapper for {\ttfamily uint16\+\_\+t} \end{DoxyCompactList}\item
  47. {\footnotesize template$<$int32\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa907f027fe3df2cecca2cf60930086fb}{utl\+::meta\+::int32\+\_\+}} = integral\+\_\+$<$ int32\+\_\+t, v $>$
  48. \begin{DoxyCompactList}\small\item\em int32\+\_\+ type\+: integral constant wrapper for {\ttfamily int32\+\_\+t} \end{DoxyCompactList}\item
  49. {\footnotesize template$<$uint32\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa8c7c38548db8df196b683ffdc109cd6}{utl\+::meta\+::uint32\+\_\+}} = integral\+\_\+$<$ uint32\+\_\+t, v $>$
  50. \begin{DoxyCompactList}\small\item\em uint32\+\_\+ type\+: integral constant wrapper for {\ttfamily uint32\+\_\+t} \end{DoxyCompactList}\item
  51. {\footnotesize template$<$char v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a0fe31eec9b085e52aa45587e6d887419}{utl\+::meta\+::char\+\_\+}} = integral\+\_\+$<$ char, v $>$
  52. \begin{DoxyCompactList}\small\item\em char\+\_\+ type\+: integral constant wrapper for {\ttfamily char} \end{DoxyCompactList}\item
  53. {\footnotesize template$<$int v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a35b962b97f8277de66c1c8c02796eed4}{utl\+::meta\+::int\+\_\+}} = integral\+\_\+$<$ int, v $>$
  54. \begin{DoxyCompactList}\small\item\em int\+\_\+ type\+: integral constant wrapper for {\ttfamily int} \end{DoxyCompactList}\item
  55. {\footnotesize template$<$long v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a5d3ed337c64ea13ee70891d09b0caa3e}{utl\+::meta\+::long\+\_\+}} = integral\+\_\+$<$ long, v $>$
  56. \begin{DoxyCompactList}\small\item\em long\+\_\+ type\+: integral constant wrapper for {\ttfamily long} \end{DoxyCompactList}\item
  57. {\footnotesize template$<$index\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a5b7d36b9e568b81f2df897d56dc23b64}{utl\+::meta\+::index\+\_\+}} = integral\+\_\+$<$ index\+\_\+t, v $>$
  58. \begin{DoxyCompactList}\small\item\em index\+\_\+ type\+: integral constant wrapper for {\ttfamily index\+\_\+t} a.\+k.\+a std\+::size\+\_\+t \end{DoxyCompactList}\item
  59. {\footnotesize template$<$size\+\_\+t v$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a249ac51f6613684164663bd22025fe9a}{utl\+::meta\+::size\+\_\+}} = integral\+\_\+$<$ size\+\_\+t, v $>$
  60. \begin{DoxyCompactList}\small\item\em size\+\_\+ type\+: integral constant wrapper for {\ttfamily size\+\_\+t} a.\+k.\+a std\+::size\+\_\+t \end{DoxyCompactList}\item
  61. {\footnotesize template$<$typename Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a3fdae1894a962a69828ccccf73088cce}{utl\+::meta\+::sizeof\+\_\+}} = size\+\_\+$<$ sizeof(Tp)$>$
  62. \item
  63. {\footnotesize template$<$typename Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_afacfb1fb855b9a9a0c8a2a625a2a9bd2}{utl\+::meta\+::alignof\+\_\+}} = size\+\_\+$<$ alignof(Tp)$>$
  64. \end{DoxyCompactItemize}
  65. \textbf{ }\par
  66. \begin{DoxyCompactItemize}
  67. \item
  68. {\footnotesize template$<$class Tp , Tp... Ints$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_abc3ba8590a6cdd451f64d6c5dcd8ff99}{utl\+::meta\+::integer\+\_\+sequence}} = std\+::integer\+\_\+sequence$<$ Tp, Ints... $>$
  69. \item
  70. {\footnotesize template$<$typename Tp , Tp Num$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a093a8cfdae571002c305273aa02ad6a2}{utl\+::meta\+::make\+\_\+integer\+\_\+sequence}} = std\+::make\+\_\+integer\+\_\+sequence$<$ Tp, Num $>$
  71. \item
  72. {\footnotesize template$<$index\+\_\+t... Idx$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_acb42e9c38b726174e64a36eea39239a5}{utl\+::meta\+::index\+\_\+sequence}} = integer\+\_\+sequence$<$ index\+\_\+t, Idx... $>$
  73. \begin{DoxyCompactList}\small\item\em Alias template index\+\_\+sequence. \end{DoxyCompactList}\item
  74. {\footnotesize template$<$index\+\_\+t Num$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa7e48cd5c76ea88fc89ff4a66bc6f596}{utl\+::meta\+::make\+\_\+index\+\_\+sequence}} = make\+\_\+integer\+\_\+sequence$<$ index\+\_\+t, Num $>$
  75. \begin{DoxyCompactList}\small\item\em Alias template make\+\_\+index\+\_\+sequence. \end{DoxyCompactList}\item
  76. {\footnotesize template$<$typename... Types$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a7cdf7fbb62116925ccdecab03d3383d9}{utl\+::meta\+::index\+\_\+sequence\+\_\+for}} = make\+\_\+index\+\_\+sequence$<$ sizeof...(Types)$>$
  77. \begin{DoxyCompactList}\small\item\em Alias template index\+\_\+sequence\+\_\+for. \end{DoxyCompactList}\end{DoxyCompactItemize}