This is the question that anti-cheat conveniently dodges.
The real problem is that "cheating" is practically undefinable. What players really need is moderation. There is no relevant difference, from a player's perspective, between playing against a cheater or playing against a legitimately skilled person. If someone is not fun to play with, then that needs to be managed somehow.
The most effective strategy is for players to moderate the servers they play on. This has recently become impossible, because game studios have chosen to monopolize server hosting while also abdicating the responsibility of moderation. Anti-cheat is nothing more than a lazy implementation of automated moderation.
There's a reason that Battlefield 4 is still going strong, while Battlefield One (which came out just after 4) is unplayable. That reason is player-hosted servers.