assume_valid_handler¶
The assume_valid_handler
is a Undefined-Behavior invoking error handler. If an error is encountered, the encoding can legally ignore and never, ever call the error handler at all. This can invoke ☢️☢️Undefined Behavior☢️☢️ on malformed input.
Warning
⚠️ This should only ever be used on the most trusted of input, ever, and that input should never come from a source that is a user or connected to ANY external input sources such as the Network, Shared Pipe, Inter-Procedural Call, or similar.
Implementers of encodings within templates can check for a potentially ignorable error handler like this one using ztd::text::is_ignorable_error_handler_v.
-
constexpr assume_valid_handler_t ztd::text::assume_valid_handler = {}¶
An instance of the assume_valid_handler_t type for ease of use.
-
class ztd::text::assume_valid_handler_t¶
An error handler that tells an encoding that it will pass through any errors, without doing any adjustment, correction or checking.
- Remark
This error handler is useful in conjunction with a ztd::text::ranges::unbounded_view for the fastest possible encoding and decoding in a general sense. However: IT IS ALSO EXTREMELY DANGEROUS AND CAN INVOKE UNDEFINED BEHAVIOR IF YOUR TEXT IS, IN FACT, MESSED UP. PLEASE DO NOT USE THIS WITHOUT A GOOD REASON!
Public Types
-
using assume_valid = ::std::integral_constant<bool, false>¶
A type that is true when calling code can not call this function and ignore it, and false when it cannot ignore it. See ztd::text::assume_valid_handler_t for details.
Public Functions
-
template<typename _Encoding, typename _Result, typename _InputProgress, typename _OutputProgress>
inline constexpr auto operator()(const _Encoding&, _Result __result, const _InputProgress&, const _OutputProgress&) const¶ A handler for either decode or encode results that simply passes the result type back through with no changes made.
- Parameters
__result – [in] The current state of the encode operation to pass through.