There are a few ways accidental name conflicts can happen in C++:

Using a namespace and accidentally naming something the same as something in that namespace. For example:
using namespace std;
int vector = 5; // Oops, overrides std::vector!

Accidentally naming a local variable the same as a global variable or function. For example:
int foo = 5;

void bar() {
    int foo = 10; // Whoops, shadows the outer foo!
}

Accidentally naming a local variable the same as a type name. For example:
struct Foo { ... };

void bar() {
    int Foo = 5; // Ah crap, hides the type!
}

These kinds of conflicts can be hard to spot, especially in large codebases or when using long, descriptive names that increase the chance of a collision. The solution is to simply be aware of your naming and the scopes you're in, and use tools like IDEs that can warn you about potential name conflicts.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence