Re: Not easy-to-understand error message from icc in AsyncCall.cc

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 01 Feb 2011 09:21:31 +1300

On 01/02/11 05:22, Kinkie wrote:
> Hi all,
> maybe someone with a deeper understanding of c++ than me could check
> out this error?
> See
> http://build.squid-cache.org/job/3.HEAD-amd64-CentOs-icc/47/console
>
> The erorr is:
> ../../../src/base/AsyncCall.cc(10): error #1931: explicit
> specialization of member "InstanceId<Class>::Prefix [with
> Class=AsyncCall]" must precede its first use (at line 10)
> template< > std::ostream& InstanceId<AsyncCall>
> ::print(std::ostream&os) const { return os<< Prefix<< value; }
> template< > const char *InstanceId<AsyncCall> ::Prefix = "call";
> template< > InstanceId<AsyncCall> ::Value InstanceId<AsyncCall> ::Last
> = 0;
>
> The offending line is:
> InstanceIdDefinitions(AsyncCall, "call");
>
> InstandceIdDefinitions is a helper macro defined in src/base/InstanceId.h
>
> Thanks!
>

That reads like an obtuse way of saying the template forward declaration
is missing from AsyncCall.h

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE9 or 3.1.10
   Beta testers wanted for 3.2.0.4
Received on Mon Jan 31 2011 - 20:21:35 MST

This archive was generated by hypermail 2.2.0 : Tue Feb 01 2011 - 12:00:06 MST