< Previous by Date Date Index Next by Date >
  Thread Index  

[reSIProcate] Fwd: [reSIProcate-users] Issue with ICC 9.0


So, it looks like the #ifdef stuff in compat.hxx and Inserter.hxx is outdated wrt the intel compiler. Anyone want to take a crack at figuring out what versions of the intel compiler support what, and updating these files? (I do not have access to any version of the intel compiler.)

Best regards,
Byron Campen

From: "Thomas Mortimer" <tmortimer@xxxxxxxxxxxxxxxxxxxx>
Date: August 15, 2007 1:09:58 PM CDT
To: "Byron Campen" <bcampen@xxxxxxxxxxxx>
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


From: Byron Campen [mailto:bcampen@xxxxxxxxxxxx]
Sent: Wednesday, August 15, 2007 10:09 AM
To: Thomas Mortimer
Cc: resiprocate-users@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [reSIProcate-users] Issue with ICC 9.0

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

Thomas Mortimer
Software Developer
Apparent Networks
tmortimer@xxxxxxxxxxxxxxxxxxxx
www.apparentnetworks.com

Tel: 604.433.2333 ext 132
Cel: 604.772.6957

400 - 321 Water Street
Vancouver, BC V6B 1B8
Tel.1.800.508.5233 Fax. 604.433.2311
Winner: Deloitte Technology Fast 50 Companies to Watch
<email_signature_image.gif>
_______________________________________________
resiprocate-users mailing list


Attachment: smime.p7s
Description: S/MIME cryptographic signature