Am I going mad?
I just had a telephone interview yesterday, and found out an hour or so ago that the feedback wasn't good. Apparently my skills aren't strong enough. However, I can't shake the feeling that at least part of the problem was on the interviewer's end, and that I wouldn't necessarily have wanted the job anyway.
To clarify, this was a technical interview, focussing on C++. The questions asked were a bit odd, though. Things like "can you throw an exception from a constructor?" (yes, but many people neglect to wrap construction with exception handling), "is the destructor run when you do this?" (no), and "how are virtual methods implemented?" (with a vtable), fair enough. But then he spent a good 10-15 minutes banging on about the behaviour of throwing exceptions from destructors, and about the validity and behaviour of running the statement "delete this;" from inside a class method. Now, I would regard both of these as generally bad ideas, capable of leading to memory corruption and quickly leading to the no-man's land of "undefined behaviour". There are circumstances in which they are valid and can work - e.g. an object can delete itself as long as it was allocated with "new", and providing that none of the code from that point onwards tries to access non-static data members - but for some reason the bloke seemed really interested in probing my knowledge of these areas, with some of his questions verging on incomprehensible.
Now, generally, I would expect any decent C++ developer to have a basic understanding that these things are bad ideas, preferably backed up with at least some idea of *why* they are bad, and to avoid using them as a pattern unless absolutely necessary. I would not expect them to try to defend their usage too vigorously. Yet I can't shake the feeling that it was this part of the interview where I stumbled, since it was one of only two points where we ended up moving on with something unanswered.
So am I going mad, or was the interviewer barking up the wrong tree? Would you even want to work on code developed by people who expect deep knowledge of such esoteric and dangerous usage of the language?
Or is this really the kind of thing I should be reading up on if I want to get past phone screening in this day and age?