Micro template library A library for building device drivers
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

83 строки
5.0 KiB

  1. \hypertarget{namespaceutl_1_1detail}{}\section{utl\+:\+:detail Namespace Reference}
  2. \label{namespaceutl_1_1detail}\index{utl\+::detail@{utl\+::detail}}
  3. \subsection*{Classes}
  4. \begin{DoxyCompactItemize}
  5. \item
  6. struct \mbox{\hyperlink{structutl_1_1detail_1_1invoke__result__}{invoke\+\_\+result\+\_\+}}
  7. \item
  8. struct \mbox{\hyperlink{structutl_1_1detail_1_1invoke__result___3_01true_00_01___callable_00_01___args_8_8_8_01_4}{invoke\+\_\+result\+\_\+$<$ true, \+\_\+\+Callable, \+\_\+\+Args... $>$}}
  9. \item
  10. struct \mbox{\hyperlink{structutl_1_1detail_1_1is__ref__wrapper}{is\+\_\+ref\+\_\+wrapper}}
  11. \item
  12. struct \mbox{\hyperlink{structutl_1_1detail_1_1is__ref__wrapper_3_01std_1_1reference__wrapper_3_01_u_01_4_01_4}{is\+\_\+ref\+\_\+wrapper$<$ std\+::reference\+\_\+wrapper$<$ U $>$ $>$}}
  13. \item
  14. struct \mbox{\hyperlink{structutl_1_1detail_1_1try__invoke}{try\+\_\+invoke}}
  15. \end{DoxyCompactItemize}
  16. \subsection*{Typedefs}
  17. \begin{DoxyCompactItemize}
  18. \item
  19. {\footnotesize template$<$typename I $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}{try\+\_\+ppI}} = decltype(++(std\+::declval$<$ I $>$()))
  20. \item
  21. {\footnotesize template$<$typename I $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}{try\+\_\+\+Ipp}} = decltype(std\+::declval$<$ I $>$()++)
  22. \end{DoxyCompactItemize}
  23. \subsection*{Functions}
  24. \begin{DoxyCompactItemize}
  25. \item
  26. {\footnotesize template$<$class T , class Type , class T1 , class... Args, meta\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ std\+::decay\+\_\+t$<$ Type T\+::$\ast$$>$$>$\+::value \&\&std\+::is\+\_\+base\+\_\+of$<$ T, std\+::decay\+\_\+t$<$ T1 $>$$>$\+::value, int $>$ = 0$>$ }\\decltype(auto) \mbox{\hyperlink{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}{invoke\+\_\+impl\+\_\+}} (Type T\+::$\ast$f, T1 \&\&t1, Args \&\&... args)
  27. \item
  28. {\footnotesize template$<$class F , class... Args$>$ }\\decltype(auto) \mbox{\hyperlink{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}{invoke\+\_\+impl\+\_\+}} (F \&\&f, Args \&\&... args)
  29. \end{DoxyCompactItemize}
  30. \subsection{Detailed Description}
  31. invoke\+\_\+result (S\+F\+I\+N\+AE friendly)
  32. \subsection{Typedef Documentation}
  33. \mbox{\Hypertarget{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}\label{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}}
  34. \index{utl\+::detail@{utl\+::detail}!try\+\_\+\+Ipp@{try\+\_\+\+Ipp}}
  35. \index{try\+\_\+\+Ipp@{try\+\_\+\+Ipp}!utl\+::detail@{utl\+::detail}}
  36. \subsubsection{\texorpdfstring{try\+\_\+\+Ipp}{try\_Ipp}}
  37. {\footnotesize\ttfamily template$<$typename I $>$ \\
  38. using \mbox{\hyperlink{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}{utl\+::detail\+::try\+\_\+\+Ipp}} = typedef decltype (std\+::declval$<$I$>$()++)}
  39. Definition at line 46 of file iterators.\+h.
  40. \mbox{\Hypertarget{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}\label{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}}
  41. \index{utl\+::detail@{utl\+::detail}!try\+\_\+ppI@{try\+\_\+ppI}}
  42. \index{try\+\_\+ppI@{try\+\_\+ppI}!utl\+::detail@{utl\+::detail}}
  43. \subsubsection{\texorpdfstring{try\+\_\+ppI}{try\_ppI}}
  44. {\footnotesize\ttfamily template$<$typename I $>$ \\
  45. using \mbox{\hyperlink{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}{utl\+::detail\+::try\+\_\+ppI}} = typedef decltype (++(std\+::declval$<$I$>$()))}
  46. Definition at line 45 of file iterators.\+h.
  47. \subsection{Function Documentation}
  48. \mbox{\Hypertarget{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}\label{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}}
  49. \index{utl\+::detail@{utl\+::detail}!invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}}
  50. \index{invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}!utl\+::detail@{utl\+::detail}}
  51. \subsubsection{\texorpdfstring{invoke\+\_\+impl\+\_\+()}{invoke\_impl\_()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  52. {\footnotesize\ttfamily template$<$class T , class Type , class T1 , class... Args, meta\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ std\+::decay\+\_\+t$<$ Type T\+::$\ast$$>$$>$\+::value \&\&std\+::is\+\_\+base\+\_\+of$<$ T, std\+::decay\+\_\+t$<$ T1 $>$$>$\+::value, int $>$ = 0$>$ \\
  53. decltype(auto) utl\+::detail\+::invoke\+\_\+impl\+\_\+ (\begin{DoxyParamCaption}\item[{Type T\+::$\ast$}]{f, }\item[{T1 \&\&}]{t1, }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})}
  54. Definition at line 51 of file invoke.\+h.
  55. \mbox{\Hypertarget{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}\label{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}}
  56. \index{utl\+::detail@{utl\+::detail}!invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}}
  57. \index{invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}!utl\+::detail@{utl\+::detail}}
  58. \subsubsection{\texorpdfstring{invoke\+\_\+impl\+\_\+()}{invoke\_impl\_()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  59. {\footnotesize\ttfamily template$<$class F , class... Args$>$ \\
  60. decltype(auto) utl\+::detail\+::invoke\+\_\+impl\+\_\+ (\begin{DoxyParamCaption}\item[{F \&\&}]{f, }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})}
  61. Definition at line 113 of file invoke.\+h.