/** * Copyright (C) 2024 T. Zachary Laine * * 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 #include #include #include using namespace boost::parser::detail::text; void compile_all_t() { { std::string str; std::string const const_str; { auto && result = detail::all( BOOST_PARSER_SUBRANGE(const_str.begin(), const_str.end())); static_assert( std::is_same_v< decltype(result), BOOST_PARSER_SUBRANGE &&>); } { auto && result = detail::all(str); static_assert(std::is_same_v< decltype(result), detail::ref_view &&>); } { auto && result = detail::all(const_str); static_assert(std::is_same_v< decltype(result), detail::ref_view &&>); } { auto && result = detail::all(std::string{}); static_assert(std::is_same_v< decltype(result), detail::owning_view &&>); } static_assert(std::is_same_v< detail::all_t< BOOST_PARSER_SUBRANGE>, BOOST_PARSER_SUBRANGE>); static_assert(std::is_same_v< detail::all_t, detail::ref_view>); static_assert(std::is_same_v< detail::all_t, detail::ref_view>); static_assert(std::is_same_v< detail::all_t, detail::owning_view>); } { char str[] = "text"; char const const_str[] = "text"; static_assert(detail::range_); static_assert(std::is_object_v); detail::ref_view ref_view_(str); { auto && result = detail::all(BOOST_PARSER_SUBRANGE( std::begin(const_str), std::end(const_str))); static_assert( std::is_same_v< decltype(result), BOOST_PARSER_SUBRANGE &&>); } { auto && result = detail::all(str); static_assert( std::is_same_v &&>); } { auto && result = detail::all(const_str); static_assert(std::is_same_v< decltype(result), detail::ref_view &&>); } static_assert( std::is_same_v< detail::all_t< BOOST_PARSER_SUBRANGE>, BOOST_PARSER_SUBRANGE>); static_assert(std::is_same_v< detail::all_t, detail::ref_view>); static_assert(std::is_same_v< detail::all_t, detail::ref_view>); } }