proper declaration for template link problem

J

Jeff Kish

Hi.

I'm stuck using a very old c++ compiler, and I'm trying to figure out how to
add a declaration so that an algorithm can be used. This is really a compiler
specific problem, however I was hoping someone could suggest the proper
declaration to put in place to solve it.

If someone can suggest a solution I'd really appreciate it.

Here is the scenario:

I have an object, and I use a vector and vector Iterator with it.

the old build system I'm using (borland 5.02) is set up
with the projects I'm stuck with to generate external references to all
template instances.

This requires that I put all template instances into a standalone cpp file
that is built differently so that they are all resolved to that cpp.

this works fine except when I add a call to:
sort(myvector.begin(),myvector.end()) or
find(myvector.begin(),myvector.end(),anObject)

I get unresolved linker errors.

Now I figure I need to add the sort and find functions to the .cpp file
that resolves all the other template components like vector.size() etc.

I can't figure out what to add though, to the file.

I tried adding things like:
std::find(MAnnotation*,MAnnotation*, const MAnnotation&);

because of the error description which said:
Error: Error: Unresolved external 'std::sort(MAnnotation*,MAnnotation*)'
referenced from module STLSortVectortester.cpp

but it did not resolve the link problem.

I appreciate any assistance.

Thanks
Jeff Kish
 
J

Jeff Kish

Hi.

I'm stuck using a very old c++ compiler, and I'm trying to figure out how to
add a declaration so that an algorithm can be used. This is really a compiler
specific problem, however I was hoping someone could suggest the proper
declaration to put in place to solve it.

If someone can suggest a solution I'd really appreciate it.

Here is the scenario:

I have an object, and I use a vector and vector Iterator with it.

the old build system I'm using (borland 5.02) is set up
with the projects I'm stuck with to generate external references to all
template instances.

This requires that I put all template instances into a standalone cpp file
that is built differently so that they are all resolved to that cpp.

this works fine except when I add a call to:
sort(myvector.begin(),myvector.end()) or
find(myvector.begin(),myvector.end(),anObject)

I get unresolved linker errors.

Now I figure I need to add the sort and find functions to the .cpp file
that resolves all the other template components like vector.size() etc.

I can't figure out what to add though, to the file.

I tried adding things like:
std::find(MAnnotation*,MAnnotation*, const MAnnotation&);

because of the error description which said:
Error: Error: Unresolved external 'std::sort(MAnnotation*,MAnnotation*)'
referenced from module STLSortVectortester.cpp

but it did not resolve the link problem.

I appreciate any assistance.

Thanks
Jeff Kish
I guess I'm tired.. this worked.
MAnnotation* std::find(MAnnotation*,MAnnotation*, const MAnnotation&);
I forgot that the return types are implictly int if I don't specify them which
was wrong.
Jeff Kish
 
M

Marcus Kwok

Jeff Kish said:
I guess I'm tired.. this worked.
MAnnotation* std::find(MAnnotation*,MAnnotation*, const MAnnotation&);
I forgot that the return types are implictly int if I don't specify them which
was wrong.

Maybe this is true since you must use an old compiler, but IIRC in
current C++ implicit return type is no longer supported... unfortunately
VS .NET 2003 SP1 has no qualms about compiling this code with all
warnings enabled; in fact, I couldn't even get it to warn me about
implicit int (if it did, it was buried underneath a bunch of warnings
for standard headers); of course, Comeau online gives the error:
explicit type is missing ("int" assumed).


#include <iostream>

f()
{
return 42;
}

int main()
{
f();
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top