Question: If a user posts a question Q and the answer to that question is "X, because Y", should the question be closed as an exact duplicate to another question that asks "What is Y?"
Perhaps an example would help.
Today, a user posted a C++ question that asked:
What would the following snippet display?
int i = 10; i = ++i + (i++) + (++i) + i; cout << i;
Of course, the answer to this question is:
It could display anything because your code exhibits Undefined Behavior.
The question was closed as an Exact Duplicate to another question that asked a completely different question: "What is the difference between [Undefined, unspecified and implementation-defined behavior]?"
Should the question have been closed as an exact duplicate to a different question?
I didn't think so, and here is why:
The OP to the closed question didn't ask "What is Undefined Behavior?" They asked what their code, which exhibited Undefined Behavior, should do. If this user is trying to write such code, it's pretty clear to me that they don't yet know enough about C++ to know that their code was broken.
I don't think that abruptly closing the question with a link to a Standard-ese, detailed definition of Undefined Behavior is helping the OP. It just confuses them. (In fact, the OP in that particular example might agree, as they commented themselves "No way it was an Exact Duplicate!")
Rather, I suggest that either
The question should be closed as a duplicate of another question asking the exact same question (in another context, of course)
The question should be answered thusly:
"It could display anything because your code exhibits Undefined Behavior when you try to assign to the variable i
more than once without an intervening Sequence Point. Here are some links that describe UB and Sequence Points in greater detail..." and then follow up with those links.