Date: August 15, 2007 1:09:58 PM CDT
Subject: RE: [reSIProcate-users] Issue with ICC 9.0
Thanks for the speedy reply, that got it with the addition of commenting out the following "#if !defined..." in Inserter.hxx.
//#if !defined(__INTEL_COMPILER)
template <class K, class C>
std::ostream&
insert(std::ostream& s, const std::set <K, C>& c)
{
s << "[";
for (typename std::set <K, C>::const_iterator i = c.begin();
i != c.end(); i++)
{
if (i != c.begin())
{
s << ", ";
}
insert(s, *i);
}
s << "]";
return s;
}
//#endif
Thanks a bunch!
-Tom
So, what is tripping you up is the following:
from Inserter.hxx
*snip*
/// Completely generic insert function
#ifdef REASONABLE_TEMPLATES
template <class T>
std::ostream&
insert(std::ostream& s, const T& t)
{
// use native <<
s << t;
return s;
}
#endif
*snip*
from compat.hxx
*snip*
#if !defined(__INTEL_COMPILER)
# define REASONABLE_TEMPLATES
#endif
*snip*
So, under the intel compiler, the version of insert that you need is disabled (apparently there was a version of the intel compiler that did not correctly handle this definition). You could try removing the #ifdef REASONABLE_TEMPLATES guard around the definition in Inserter.hxx, and see if it works. If it does, we may need to fiddle with compat.hxx to take version into account.
Best regards,
Byron Campen
Hi There,
Trying to compile reSIProcate 1.1 with ICC 9.0 (Intel compiler). Having some issues here with the "resip::insert" functions. It seems to compile fine in gcc, however my hands are tied on using the intel compiler. I was wondering if anyone has seen this problem before, and if they can suggest anything. It seems like when the Inserter recursion makes it to the bottom it doesnt know what to do with the final type in the various containers:
../../resip/stack/ParserContainer.hxx(172): error: no instance of overloaded function "resip::insert" matches the argument list
argument types are: (std::ostream, const resip::NameAddr)
insert(s, *i);
^
detected during:
instantiation of "std::ostream &resip::insert(std::ostream &, const resip::ParserContainer<T> &) [with T=resip::NameAddr]" at line 248 of "../../rutil/Inserter.hxx"
instantiation of "std::ostream &resip::operator<<(std::ostream &, const resip::InserterClass<T> &) [with T=resip::NameAddrs]"
Any help would be appreciated.
-Tom
<email_signature_image.gif>
_______________________________________________
resiprocate-users mailing list