base_n::decode_algorithm::max_remaining_size¶
mgs::ssize_t max_remaining_size() const;
Computes the maximum number of remaining bytes.
Constraints¶
This function is only defined if IS models codecs::sized_input_source.
Parameters¶
None.
Return value¶
The maximum number of remaining bytes.
Example¶
#include <iostream>
#include <string>
#include <mgs/base_n/decode_algorithm.hpp>
#include <mgs/codecs/iterator_sentinel_source.hpp>
using namespace mgs;
using namespace mgs::base_n;
namespace {
struct base2_encoding_traits {
// using C++17 inline variables for simplicity
inline static char const alphabet[] = {'0', '1'};
inline static auto const padding_policy = base_n::padding_policy::none;
static int index_of(char c) {
if (c == '0') return 0;
if (c == '1') return 1;
return -1;
}
};
} // namespace
int main() {
using input_source_t =
codecs::iterator_sentinel_source<std::string::iterator>;
using base2_decode = decode_algorithm<base2_encoding_traits, input_source_t>;
std::string hello(
"01001000"
"01100101"
"01101100"
"01101100"
"01101111"
"00101100"
"00100000"
"01010111"
"01101111"
"01110010"
"01101100"
"01100100"
"00100001");
auto input_source = codecs::make_iterator_sentinel_source(hello);
base2_decode algo(input_source);
std::cout << "Maximum remaining decoded size: " << algo.max_remaining_size()
<< std::endl;
}