Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 26930 invoked from network); 23 Feb 2006 22:12:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 23 Feb 2006 22:12:31 -0000 Received: (qmail 12753 invoked by uid 500); 23 Feb 2006 22:12:31 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 12703 invoked by uid 500); 23 Feb 2006 22:12:30 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 12692 invoked by uid 99); 23 Feb 2006 22:12:30 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2006 14:12:30 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [12.17.213.84] (HELO bco-exchange.bco.roguewave.com) (12.17.213.84) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2006 14:12:29 -0800 Received: from [10.70.2.6] (skynet.bco.roguewave.com [10.70.2.6]) by bco-exchange.bco.roguewave.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2657.72) id FQ7J15DH; Thu, 23 Feb 2006 15:11:43 -0700 Message-ID: <43FE345E.2050707@roguewave.com> Date: Thu, 23 Feb 2006 15:17:02 -0700 From: Liviu Nicoara User-Agent: Mozilla Thunderbird 1.0.7 (X11/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 To: stdcxx-dev@incubator.apache.org Subject: Re: r. 380238 broken References: <20060222054056.22125.qmail@minotaur.apache.org> <43FE329F.4060907@roguewave.com> In-Reply-To: <43FE329F.4060907@roguewave.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N It seems I rushed to a wrong conclusion - I haven't noticed the definitions for _RWSTD_INSTANTIATE_type's macros. Scratch the diff since it leads to unsats because of the lack of type instantiations in the library. Martin, any off-the-shelf ideas as to why I get this: In file included from /build/nicoara/stdcxx/include/ios:29, from /build/nicoara/stdcxx/src/strstream.cpp:38: /build/nicoara/stdcxx/include/rw/_basic_ios.h:339:42: operator '!' has no right operand /build/nicoara/stdcxx/include/rw/_basic_ios.h:346:45: operator '!' has no right operand ? Liviu Liviu Nicoara wrote: > Revision 380238 seems to be broken at least on Linux. I believe the > intention in rw/_defs.h conditionals was to test for the definition of > the macros in the diff below since stdcxx does not define config macros > to values (0/1) as a matter of policy. > > I changed all instances where the conditional tests for the macro value > and it builds: > > $ svn diff > Index: include/rw/_defs.h > =================================================================== > --- include/rw/_defs.h (revision 380233) > +++ include/rw/_defs.h (working copy) > @@ -1310,10 +1310,10 @@ > && !defined (_RWSTD_NO_EXPLICIT_INSTANTIATION) \ > && !defined (_RWSTD_NO_INSTANTIATE) > > -# define _RWSTD_INSTANTIATE(name, type) \ > - ( _RWSTD_INSTANTIATE ## name \ > - && _RWSTD_INSTANTIATE ## type \ > - && !_RWSTD_NO ## type) > +# define _RWSTD_INSTANTIATE(name, type) \ > + ( defined (_RWSTD_INSTANTIATE ## name) \ > + && defined (_RWSTD_INSTANTIATE ## type) \ > + && !defined (_RWSTD_NO ## type)) > > # define _RWSTD_INSTANTIATE_1(arg) template arg > # define _RWSTD_INSTANTIATE_2(a1, a2) template a1, a2 > @@ -1336,7 +1336,7 @@ > // 'extern' before template explicit instantiation > # pragma warning (disable: 4231) > > -# define _RWSTD_INSTANTIATE(ign1, type) (!_RWSTD_NO ## type) > +# define _RWSTD_INSTANTIATE(ign1, type) (!defined (_RWSTD_NO ## type)) > > # define _RWSTD_INSTANTIATE_1(arg) extern template arg > # define _RWSTD_INSTANTIATE_2(a1, a2) extern template a1, a2 > @@ -1345,7 +1345,7 @@ > // use the extern template extension to declare template > // specializations that are explicitly instantiated in > // source (.cpp) files > -# define _RWSTD_INSTANTIATE(ign1, type) (!_RWSTD_NO ## type) > +# define _RWSTD_INSTANTIATE(ign1, type) (!defined (_RWSTD_NO ## type)) > # define _RWSTD_INSTANTIATE_1(arg) extern template arg > # define _RWSTD_INSTANTIATE_2(a1, a2) extern template a1, a2 > # define _RWSTD_INSTANTIATE_3(a1, a2, a3) extern template a1, a2, a3 >