Micro template library A library for building device drivers
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

40 lines
3.3 KiB

  1. \hypertarget{useif_8h}{}\section{include/utl/meta/useif.h File Reference}
  2. \label{useif_8h}\index{include/utl/meta/useif.\+h@{include/utl/meta/useif.\+h}}
  3. Template meta-\/programming S\+F\+I\+N\+AE helpers.
  4. {\ttfamily \#include $<$utl/core/impl.\+h$>$}\newline
  5. {\ttfamily \#include $<$utl/meta/operations.\+h$>$}\newline
  6. {\ttfamily \#include $<$utl/meta/sfinae.\+h$>$}\newline
  7. \subsection*{Namespaces}
  8. \begin{DoxyCompactItemize}
  9. \item
  10. \mbox{\hyperlink{namespaceutl}{utl}}
  11. \begin{DoxyCompactList}\small\item\em S\+TL\textquotesingle{}s core language concepts. \end{DoxyCompactList}\item
  12. \mbox{\hyperlink{namespaceutl_1_1meta}{utl\+::meta}}
  13. \end{DoxyCompactItemize}
  14. \subsection*{Typedefs}
  15. \begin{DoxyCompactItemize}
  16. \item
  17. {\footnotesize template$<$typename \+\_\+\+T1 , typename \+\_\+\+T2 , typename \+\_\+\+Ret = \+\_\+\+T1$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a7b4ba22b3afb3e7a98e1012a350cb573}{utl\+::meta\+::use\+\_\+if\+\_\+same\+\_\+t}} = enable\+\_\+if\+\_\+t$<$ same\+\_\+$<$ \+\_\+\+T1, \+\_\+\+T2 $>$\+::value, \+\_\+\+Ret $>$
  18. \begin{DoxyCompactList}\small\item\em If same type resolves to \+\_\+\+Ret, else S\+F\+I\+N\+AE. \end{DoxyCompactList}\item
  19. {\footnotesize template$<$typename \+\_\+\+T1 , typename \+\_\+\+T2 , typename \+\_\+\+Ret = \+\_\+\+T1$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_af590469269a8c378d937d8d75ee96e8c}{utl\+::meta\+::use\+\_\+if\+\_\+not\+\_\+same\+\_\+t}} = enable\+\_\+if\+\_\+t$<$ !same\+\_\+$<$ \+\_\+\+T1, \+\_\+\+T2 $>$\+::value, \+\_\+\+Ret $>$
  20. \begin{DoxyCompactList}\small\item\em If not same type resolves to \+\_\+\+Ret, else S\+F\+I\+N\+AE. \end{DoxyCompactList}\item
  21. {\footnotesize template$<$typename T1 , typename... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ad0394846551cd881782e46d2d05190de}{utl\+::meta\+::use\+\_\+if\+\_\+any\+\_\+t}} = enable\+\_\+if\+\_\+t$<$ or\+\_\+$<$ T1, Ts... $>$\+::value, T1 $>$
  22. \begin{DoxyCompactList}\small\item\em If any type (\+\_\+\+T1 or \+\_\+\+T2) type resolves to \+\_\+\+Ret, else to S\+F\+I\+N\+AE. \end{DoxyCompactList}\item
  23. {\footnotesize template$<$typename T1 , typename... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a52ff6257bf079904f9cb51a65f5a7397}{utl\+::meta\+::use\+\_\+if\+\_\+all\+\_\+t}} = enable\+\_\+if\+\_\+t$<$ and\+\_\+$<$ T1, Ts... $>$\+::value, T1 $>$
  24. \begin{DoxyCompactList}\small\item\em If both type (\+\_\+\+T1 and \+\_\+\+T2) type resolves to \+\_\+\+Ret, else to S\+F\+I\+N\+AE. \end{DoxyCompactList}\end{DoxyCompactItemize}
  25. \subsection{Detailed Description}
  26. Template meta-\/programming S\+F\+I\+N\+AE helpers.
  27. Copyright (C) 2018 Christos Choutouridis
  28. This program is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  29. This program is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Lesser General Public License for more details.
  30. You should have received a copy of the G\+NU Lesser General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}.