xieite::isprint()

Defined in header <xieite/data/isprint.hpp>

An improved replacement and extension of std::isprint().


Declarations

#0
[[nodiscard]] constexpr bool isprint(xieite::is_char auto c) noexcept;
Checks if a single character has a graphical representation or is a space.

#1
template<xieite::is_char Char, typename Traits>
[[nodiscard]] constexpr bool isprint(std::basic_string_view<Char, Traits> strv) noexcept;
Checks if a string consists only of printable characters.

#2
template<xieite::is_char Char, typename Traits, typename Alloc>
[[nodiscard]] constexpr bool isprint(const std::basic_string_view<Char, Traits, Alloc>& str) noexcept;
Defers to #1 after deducing Char.

#2
template<xieite::is_char Char, std::size_t length>
[[nodiscard]] constexpr bool isprint(const xieite::paren<Char[length]>& str) noexcept;
Defers to #1 after deducing Char.


Example

static_assert(xieite::isprint('a'));
static_assert(xieite::isprint('0'));
static_assert(xieite::isprint('!'));
static_assert(xieite::isprint(' '));
static_assert(not xieite::isprint('\n'));
[View in Compiler Explorer]