diff options
Diffstat (limited to 'boost/mp11/integral.hpp')
-rw-r--r-- | boost/mp11/integral.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/boost/mp11/integral.hpp b/boost/mp11/integral.hpp new file mode 100644 index 0000000000..3e0ba197a2 --- /dev/null +++ b/boost/mp11/integral.hpp @@ -0,0 +1,40 @@ +#ifndef BOOST_MP11_INTEGRAL_HPP_INCLUDED +#define BOOST_MP11_INTEGRAL_HPP_INCLUDED + +// Copyright 2015 Peter Dimov. +// +// 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 + +#include <type_traits> +#include <cstddef> + +namespace boost +{ +namespace mp11 +{ + +// mp_bool +template<bool B> using mp_bool = std::integral_constant<bool, B>; + +using mp_true = mp_bool<true>; +using mp_false = mp_bool<false>; + +// mp_to_bool +template<class T> using mp_to_bool = mp_bool<static_cast<bool>( T::value )>; + +// mp_not<T> +template<class T> using mp_not = mp_bool< !T::value >; + +// mp_int +template<int I> using mp_int = std::integral_constant<int, I>; + +// mp_size_t +template<std::size_t N> using mp_size_t = std::integral_constant<std::size_t, N>; + +} // namespace mp11 +} // namespace boost + +#endif // #ifndef BOOST_MP11_INTEGRAL_HPP_INCLUDED |