1 /*! 2 @file 3 Forward declares `boost::hana::all`. 4 5 @copyright Louis Dionne 2013-2017 6 Distributed under the Boost Software License, Version 1.0. 7 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) 8 */ 9 10 #ifndef BOOST_HANA_FWD_ALL_HPP 11 #define BOOST_HANA_FWD_ALL_HPP 12 13 #include <boost/hana/config.hpp> 14 #include <boost/hana/core/when.hpp> 15 16 17 BOOST_HANA_NAMESPACE_BEGIN 18 //! Returns whether all the keys of the structure are true-valued. 19 //! @ingroup group-Searchable 20 //! 21 //! The keys of the structure must be `Logical`s. If the structure is not 22 //! finite, a false-valued key must appear at a finite "index" in order 23 //! for this method to finish. 24 //! 25 //! 26 //! Example 27 //! ------- 28 //! @include example/all.cpp 29 #ifdef BOOST_HANA_DOXYGEN_INVOKED __anon089ac5750102(auto&& xs) 30 constexpr auto all = [](auto&& xs) { 31 return tag-dispatched; 32 }; 33 #else 34 template <typename S, typename = void> 35 struct all_impl : all_impl<S, when<true>> { }; 36 37 struct all_t { 38 template <typename Xs> 39 constexpr auto operator()(Xs&& xs) const; 40 }; 41 42 constexpr all_t all{}; 43 #endif 44 BOOST_HANA_NAMESPACE_END 45 46 #endif // !BOOST_HANA_FWD_ALL_HPP 47