MPL11
 All Classes Namespaces Files Typedefs Macros Groups Pages
strict_noexcept.hpp
Go to the documentation of this file.
1 
12 #ifndef BOOST_MPL11_DETAIL_LOGICAL_OR_STRICT_NOEXCEPT_HPP
13 #define BOOST_MPL11_DETAIL_LOGICAL_OR_STRICT_NOEXCEPT_HPP
14 
15 #include <boost/mpl11/bool.hpp>
16 
17 
18 namespace boost { namespace mpl11 { namespace detail { namespace logical_or {
19  void allow_expansion(...) noexcept;
20  template <bool condition>
21  struct noexcept_if { noexcept_if() noexcept(condition) { } };
22 
28  template <typename ...xs>
29  using strict_noexcept = bool_<
30  !noexcept(allow_expansion(noexcept_if<!(bool)xs::type::value>{}...))
31  >;
32 }}}} // end namespace boost::mpl11::detail::logical_or
33 
34 #endif // !BOOST_MPL11_DETAIL_LOGICAL_OR_STRICT_NOEXCEPT_HPP
Forwards to boost/mpl11/integer.hpp.