| [/ |
| Copyright 2020 Glen Joseph Fernandes |
| (glenjofe@gmail.com) |
| |
| Distributed under the Boost Software License, |
| Version 1.0. (See accompanying file LICENSE_1_0.txt |
| or copy at http://www.boost.org/LICENSE_1_0.txt). |
| ] |
| |
| [section:disjunction disjunction] |
| |
| template<class... T> |
| struct disjunction; |
| |
| __inherit Inherits from the first type `U` in the list for which |
| `bool(U::value)` is `true`, or the last type in the list if there is no such |
| type. If `sizeof...(T)` is `0` then inherits from `__false_type`. |
| |
| __header `#include <boost/type_traits/disjunction.hpp>` |
| |
| [all_compilers] In the absence of variadic-template support, `disjunction` has |
| only 2 parameters. |
| |
| __examples |
| |
| [:Given: `template<int N> struct Int { static const int value = N };` ] |
| |
| [:`disjunction<>` inherits from `__false_type`.] |
| |
| [:`disjunction<Int<1> >` inherits from `Int<1>`.] |
| |
| [:`disjunction<Int<1>, Int<2>, Int<3> >` inherits from `Int<1>`.] |
| |
| [:`disjunction<Int<0>, Int<2>, Int<3> >` inherits from `Int<2>`.] |
| |
| [endsect] |