uTL
micro Template library
useif.h File Reference

Template meta-programming SFINAE helpers. More...

#include <utl/core/impl.h>
#include <utl/meta/operations.h>
#include <utl/meta/sfinae.h>

Go to the source code of this file.

Namespaces

 utl
 STL's core language concepts.
 
 utl::meta
 

Typedefs

template<typename _T1 , typename _T2 , typename _Ret = _T1>
using utl::meta::use_if_same_t = enable_if_t< same_< _T1, _T2 >::value, _Ret >
 If same type resolves to _Ret, else SFINAE. More...
 
template<typename _T1 , typename _T2 , typename _Ret = _T1>
using utl::meta::use_if_not_same_t = enable_if_t< !same_< _T1, _T2 >::value, _Ret >
 If not same type resolves to _Ret, else SFINAE. More...
 
template<typename T1 , typename... Ts>
using utl::meta::use_if_any_t = enable_if_t< or_< T1, Ts... >::value, T1 >
 If any type (_T1 or _T2) type resolves to _Ret, else to SFINAE. More...
 
template<typename T1 , typename... Ts>
using utl::meta::use_if_all_t = enable_if_t< and_< T1, Ts... >::value, T1 >
 If both type (_T1 and _T2) type resolves to _Ret, else to SFINAE. More...
 

Detailed Description

Template meta-programming SFINAE helpers.

Copyright (C) 2018 Christos Choutouridis

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file useif.h.