単語が回文であるかどうかを確認する関数を実装しようとしています。以下は、使用しようとしたコードです。このコードは、明らかに 1 文字の単語と、同じ文字で開始および終了しない単語に対して機能します。それ以外は失敗します。助けてください
bool is_palindrome(int start, int end, const string & str)
{
    if (str[start] != str[end])
        return false;
    else if (start == end)
        return true;
    else
        return is_palindrome(start++, end--, str);
    return false;
}
これは、関数が呼び出すメイン関数です http://csel.cs.colorado.edu/%7Eekwhite/CSCI2270Fall2011/recursion_lab/palindrome.cxx