FreeBSD Manual Pages
std::ranges...operatorbool(3) C++ Standard Libarystd::ranges...operatorbool(3) NAME std::ranges::view_interface::operatorbool - std::ranges::view_inter- face::operatorbool Synopsis constexpr explicit operator bool() requires /* see below */; (1) (since C++20) constexpr explicit operator bool() const requires /* see below */; (2) (since C++20) The default implementation of operator bool member function checks whether the view is non-empty. It makes the derived type contextually convertible to bool. 1) Let derived be static_cast<D&>(*this). The expression in the re- quires-clause is equal to requires { ranges::empty(derived); }, and the function body is equivalent to return !ranges::empty(derived);. 2) Same as (1), except that derived is static_cast<const D&>(*this). Parameters (none) Return value false if the value of the derived type is empty (determined by std::ranges::empty), true otherwise. Notes In C++20, no type derived from std::ranges::view_interface in the standard library provides their own operator bool. Almost all of these types use the default implementation. A notable exception is std::ranges::basic_istream_view. For its it- erator type never satisfies forward_iterator, the view cannot use the inherited opera- tor bool. Example // Run this code #include <array> #include <iostream> #include <ranges> int main() { const std::array ints {0, 1, 2, 3, 4}; auto odds = ints | std::views::filter([](int i) { return 0 != i % 2; }); auto negs = ints | std::views::filter([](int i) { return i < 0; }); std::cout << std::boolalpha << "Has odd numbers: " << (!!odds) << ' ' << '\n' << "Has negative numbers: " << (!!negs) << ' ' << '\n'; } Output: Has odd numbers: true Has negative numbers: false See also ranges::empty checks whether a range is empty (C++20) (customization point object) empty returns whether the derived view is empty. Provided if it satisfies (C++20) sized_range or forward_range. (public member function) empty checks whether the container is empty (C++17) (function template) http://cppreference.com 2024.06.10 std::ranges...operatorbool(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::view_interface::operatorbool&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
