IKM C++ assessment asks about std::unordered_set, part #1
Defining an operator== for your own type is overloading.  The overload set includes all the built-in signatures.
Based on how you worded it, I agree with (1).  It is not true that you must define operator== for that struct in order to use it with std::unordered_set.  You can use the template argument, or you can cause the default predicate to work in other ways especially in newer versions of C++ (e.g. default the spaceship operator).
As for the example, doesn't it also need to specialize std::hash in order for it to work?  std::unordered_set&lt;ikm_test_struct, ikm_test_struct&gt; doesn't make sense.
If this test is going to be read by other prospective team members, then essaying what you thought is going to communicate to them that you (1) know your stuff; and (2) will be likely to apply the same skill to interpreting requirements.  Finish by correcting the sloppy nomenclature, linking to cppreference and/or a copy of the Standard, and reviewing the code of the sample (with citations to the Standard Guidelines).
If you're passed on as &quot;overqualified&quot;, you'll be glad in the long run.
If it's a multiple-choice computer-based thing that just reports the score, that can be a real pain.  I recall encountering one where the expected results were sometimes just plain wrong, or out of date, or the question was worded poorly.  You should contact the people who made the test.