Err OK, I knew I'd need to clear some things up. Sorry for not taking the time in my previous post.
First of all, I know what a linker is, thankyouverymuch. And of course I wouldn't expect it to link a nonexistent function. What I meant was more along the lines of:
int somefunction(void);
int main(void) { ... somefunction(); ... }
int somefunction(void) { ... }
And THEN you have something along the lines of "could not find function 'somefunction' "
Although I've seen quite a few examples (people I've tried to help being unfamiliar with the intricacies of C++, just like myself) in homeworks, etc., I can't find any at the moment. However, rest assured, it would be something along the lines of a class calling a method of another class, all quite properly defined. Because of what I'm guessing some namespace/scope and object code function name generation weirdings, you'd get something like:
LNKXXX: Unresolved reference to function_name_$$$@@@HASH@@@$$$_wouldreturntypebehere__(__stdio_std::IStream param1, param2, etc.) **
Sometimes, moving the "using namespace std;" lines around, or even recreating the project with the exact same source files would get rid of the error(s). Mind you, none of the default projects settings would have been modified in the first place.
Call me weird, but I expect proper* code that compiles cleanly to link cleanly.
*: e.g. one that has all the definitions of all prototyped functions
**: From what I could gather, the reported name of the missing function would match the name and parameters of the function defined in the sources. For example, function_name() would be able to use param1 without any problems (so we know its type is properly defined). The calling function would not have any problems either; i.e. copy-pasting the contents of function_name() inside the calling function would also work. However, they would just not link.
Any ideas?