![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/hana/fwd/ |
Upload File : |
/*! @file Forward declares `boost::hana::integral_constant`. @copyright Louis Dionne 2013-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_HANA_FWD_INTEGRAL_CONSTANT_HPP #define BOOST_HANA_FWD_INTEGRAL_CONSTANT_HPP #include <boost/hana/config.hpp> #include <boost/hana/detail/integral_constant.hpp> #include <cstddef> BOOST_HANA_NAMESPACE_BEGIN //! Creates an `integral_constant` holding the given compile-time value. //! @relates hana::integral_constant //! //! Specifically, `integral_c<T, v>` is a `hana::integral_constant` //! holding the compile-time value `v` of an integral type `T`. //! //! //! @tparam T //! The type of the value to hold in the `integral_constant`. //! It must be an integral type. //! //! @tparam v //! The integral value to hold in the `integral_constant`. //! //! //! Example //! ------- //! @snippet example/integral_constant.cpp integral_c template <typename T, T v> constexpr integral_constant<T, v> integral_c{}; //! @relates hana::integral_constant template <bool b> using bool_ = integral_constant<bool, b>; //! @relates hana::integral_constant template <bool b> constexpr bool_<b> bool_c{}; //! @relates hana::integral_constant using true_ = bool_<true>; //! @relates hana::integral_constant constexpr auto true_c = bool_c<true>; //! @relates hana::integral_constant using false_ = bool_<false>; //! @relates hana::integral_constant constexpr auto false_c = bool_c<false>; //! @relates hana::integral_constant template <char c> using char_ = integral_constant<char, c>; //! @relates hana::integral_constant template <char c> constexpr char_<c> char_c{}; //! @relates hana::integral_constant template <short i> using short_ = integral_constant<short, i>; //! @relates hana::integral_constant template <short i> constexpr short_<i> short_c{}; //! @relates hana::integral_constant template <unsigned short i> using ushort_ = integral_constant<unsigned short, i>; //! @relates hana::integral_constant template <unsigned short i> constexpr ushort_<i> ushort_c{}; //! @relates hana::integral_constant template <int i> using int_ = integral_constant<int, i>; //! @relates hana::integral_constant template <int i> constexpr int_<i> int_c{}; //! @relates hana::integral_constant template <unsigned int i> using uint = integral_constant<unsigned int, i>; //! @relates hana::integral_constant template <unsigned int i> constexpr uint<i> uint_c{}; //! @relates hana::integral_constant template <long i> using long_ = integral_constant<long, i>; //! @relates hana::integral_constant template <long i> constexpr long_<i> long_c{}; //! @relates hana::integral_constant template <unsigned long i> using ulong = integral_constant<unsigned long, i>; //! @relates hana::integral_constant template <unsigned long i> constexpr ulong<i> ulong_c{}; //! @relates hana::integral_constant template <long long i> using llong = integral_constant<long long, i>; //! @relates hana::integral_constant template <long long i> constexpr llong<i> llong_c{}; //! @relates hana::integral_constant template <unsigned long long i> using ullong = integral_constant<unsigned long long, i>; //! @relates hana::integral_constant template <unsigned long long i> constexpr ullong<i> ullong_c{}; //! @relates hana::integral_constant template <std::size_t i> using size_t = integral_constant<std::size_t, i>; //! @relates hana::integral_constant template <std::size_t i> constexpr size_t<i> size_c{}; namespace literals { //! Creates a `hana::integral_constant` from a literal. //! @relatesalso boost::hana::integral_constant //! //! The literal is parsed at compile-time and the result is returned //! as a `llong<...>`. //! //! @note //! We use `llong<...>` instead of `ullong<...>` because using an //! unsigned type leads to unexpected behavior when doing stuff like //! `-1_c`. If we used an unsigned type, `-1_c` would be something //! like `ullong<-1>` which is actually `ullong<something huge>`. //! //! //! Example //! ------- //! @snippet example/integral_constant.cpp literals template <char ...c> constexpr auto operator"" _c(); } BOOST_HANA_NAMESPACE_END #endif // !BOOST_HANA_FWD_INTEGRAL_CONSTANT_HPP