The problem is here:
if (!str.empty())
{
str.erase(std::remove_if(str.begin(), str.begin() + 1, detect_bracket));
}
.
std::remove_if " ". , (str.begin() + 1). , begin+1, b.
, , , - :
if (!str.empty())
{
auto it = std::remove_if(str.begin(), str.begin() + 1, detect_bracket);
if(it != str.begin() + 1)
str.erase(it);
}
, , :
if(str[0] == '(' || str[0] == ')')
str.erase(0);
.