Я не понимаю смысл (ret==s.size()) и для чего мы определяем размер строки вначале.... тут все правильно в ней, нет опечаток?
string::size_type find_char(const string &s, char c, string::size_type &occurs)
{
auto ret=s.size();
occurs=0;
for(decltype(ret) i=0; i!=s.size();++i)
{
if(s==c)
{
if(ret==s.size())
ret=i;
++occurs;
}
}
return ret;
}
string::size_type find_char(const string &s, char c, string::size_type &occurs)
{
auto ret=s.size();
occurs=0;
for(decltype(ret) i=0; i!=s.size();++i)
{
if(s==c)
{
if(ret==s.size())
ret=i;
++occurs;
}
}
return ret;
}