Re: MSVC C++ problems

From: Robert Collins <robertc@dont-contact.us>
Date: 16 Jul 2003 21:01:08 +1000

On Wed, 2003-07-16 at 06:43, Serassio Guido wrote:

> Done, only 57 errors left ....
> Yesterday the errors are more then 300 .....
>
> Some interesting things:
>
> MSVC seems don't like constructs like this:
>
> template <class MatchType>
> MemPool (*ACLStrategised<MatchType>::Pool)(NULL);
>
> this syntax works:
>
> template <class MatchType>
> MemPool *ACLStrategised<MatchType>::Pool = NULL;
>
> Any hints ?
>
Hmm. not off hand. I'll need to dig up the C++ spec and see what
assignment initialisation on static members implies, regarding race
conditions etc..

(Alan: I'm not worried about overhead for trivial one-offs like this,
but about the potential for races with singletons.)

That is, unless someone lurking knows the standard off-hand?

> This seems to be the biggest left problem :
>
> delay_pools.cc
> c:\work\nt-3.0\src\delayvector.h(69) : error C2629: unexpected 'class
> DelayVector::Id ('
> c:\work\nt-3.0\src\delayvector.h(69) : error C2238: unexpected token(s)
> preceding ';'
> c:\work\nt-3.0\src\delayvector.h(76) : error C2027: use of undefined type
> 'DelayVector'
> c:\work\nt-3.0\src\delayvector.h(41) : see declaration of
> 'DelayVector'

Here, Id is a embedded class of DelayVector. Can you try changing
DelayVector::Pointer on line 69 to RefCount<DelayVector> ?

> c:\work\nt-3.0\src\acl.cc(716) : error C2664: 'delete' : cannot convert
> parameter 1 from 'const class acl_access *const ' to 'void *'
> Conversion loses qualifiers

Ok, I've added a test case to see if my deleteSelf hack is needed on any platform.

If you can confirm that the test case VirtualDeleteOperator works on msvc, then all we need is a couple of extra positives: xlc and egcs (the OS2 port).

Rob

-- 
GPG key available at: <http://members.aardvark.net.au/lifeless/keys.txt>.

Received on Wed Jul 16 2003 - 05:01:17 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:20:17 MST