void encodeLetter(std::string& encoding, 
                   char letter, char lastLetter) const 
 {
     auto digit = encodedDigit(letter);
     if (NotADigit != digit && 
            (lastDigit(encoding) != digit || isVowel(lastLetter))) 
     {
         encoding += digit;
     }
 }
MatrixHexEncoder::FnBitMap MatrixHexEncoder::operator()(uint16_t number)
{
    return [number, this]() -> std::vector<uint8_t>
    {
        std::vector<uint8_t> digits;

        auto fnEncodeDigit = [&digits, this](uint8_t n)
        {
            EncoderType encodedDigit(_encoder(n));
            digits.push_back(0);
            digits.insert(digits.end(), encodedDigit.begin(), encodedDigit.end());
        };

        fnEncodeDigit(number);
        fnEncodeDigit(number >> 4);
        fnEncodeDigit(number >> 8);
        fnEncodeDigit(number >> 12);

        return digits;
    };
}
 void encodeHead(std::string& encoding, const std::string& word) const {
     encoding += encodedDigit(word.front());
 }
Example #4
0
void Soundex::encodeLetter(std::string& encoding, char letter, char prevLetter) const {
	auto digit = encodedDigit(letter);
	if (digit != NotADigit && (digit != lastDigit(encoding) || isVowel(prevLetter)))
		encoding += digit;
}