Return-Path: Delivered-To: apmail-stdcxx-dev-archive@www.apache.org Received: (qmail 96677 invoked from network); 27 May 2008 03:02:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 May 2008 03:02:27 -0000 Received: (qmail 83820 invoked by uid 500); 27 May 2008 03:02:29 -0000 Delivered-To: apmail-stdcxx-dev-archive@stdcxx.apache.org Received: (qmail 83804 invoked by uid 500); 27 May 2008 03:02:29 -0000 Mailing-List: contact dev-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list dev@stdcxx.apache.org Received: (qmail 83793 invoked by uid 99); 27 May 2008 03:02:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 26 May 2008 20:02:29 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of msebor@gmail.com designates 64.233.166.179 as permitted sender) Received: from [64.233.166.179] (HELO py-out-1112.google.com) (64.233.166.179) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 May 2008 03:01:40 +0000 Received: by py-out-1112.google.com with SMTP id u52so1546966pyb.11 for ; Mon, 26 May 2008 20:01:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:organization:user-agent:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; bh=BGKPa/o55qtqH3ryVC86X9wGSf0rsIANA/PQwmVM/do=; b=CqY5fiT2yKxBeScaZy7SUlntvmPsZx840KY6rZnrna6IcVhdKs/VOXJ5qW8+OBF/JiC4JN/HcPV8NiKS47KMDq/UdkQH3ywaXDz9B5cVr33nZFWhA0wYL9G4FjJbJsvNYQWXsmfVA4RVo5b8V3R4kBeg4u2q3Og4jI+lx88TCGY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:organization:user-agent:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; b=GKrlK+iAJBJU9cCiMgO+A+D+S1rNwuCDiF+b2DpTJJlNmi88Y+sYyXuMq56DBGMxjfOaQlfiaAUAcscc9aJRhUqleEsg++BZeEvz3cXKtWtVsq8fyqW9HrkiK+0XXDRREOvKecwCAf6LQB0IIakoI2y0s4ZX5/2d11sc3QW/x7Y= Received: by 10.35.91.1 with SMTP id t1mr5233035pyl.24.1211857316275; Mon, 26 May 2008 20:01:56 -0700 (PDT) Received: from localhost.localdomain ( [71.229.200.170]) by mx.google.com with ESMTPS id f57sm37460332pyh.38.2008.05.26.20.01.54 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 26 May 2008 20:01:55 -0700 (PDT) Message-ID: <483B79A1.4070808@roguewave.com> Date: Mon, 26 May 2008 21:01:53 -0600 From: Martin Sebor Organization: Rogue Wave Software, Inc. User-Agent: Thunderbird 2.0.0.14 (X11/20080501) MIME-Version: 1.0 To: dev@stdcxx.apache.org Subject: Re: type_traits progress References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: Martin Sebor X-Virus-Checked: Checked by ClamAV on apache.org I haven't gone through the whole patch yet so just a few brief comments. I'll follow up with more once I've finished reviewing the rest. First, some of your files are missing the final newline (required of text files by POSIX). Regarding style: The convention is template struct S; rather than template struct S; Regarding Copyrights: the year should be 2008 in all newly written code, and there's a missing ", Inc." at the end. Regarding naming: * File names should be abbreviated so as not to exceed the 14 character minimum required by POSIX. * Do the trait member (e.g., _C_type, _C_value) need to be privatized or would it make more sense to use the required names? Regarding the supporting infrastructure (config tests and headers): * In etc/config/src/RVALUE_REFERENCE.cpp needs, the _TYPENAME macro isn't defined at this stage. Also, I'm not sure why the test needs to use templates at all. * In etc/config/src/VARIADIC_TEMPLATES.cpp, shouldn't struct pack (the primary template) be defined? Also, is the empty specialization of pack valid? Finally, even though it may not matter for correctness, the pack specialization should probably be defined as a struct rather than class. * In include/rw/_config-msvc.h: Would we have a naming conflict with any of our other macros if we dropped the _TT_ bit from the type traits macros? (I would prefer to keep the names of the macros short and as close to the type traits intrinsics as possible). * In include/rw/_defs.h, what is __NATIVE_TYPE_TRAITS_SUPPORTED and where does it come from? I'm also concerned that the macro might be #defined but not all the traits might be supported or one of them might be spelled differently. I also noticed that some files (e.g., _is_floating_point.h) make use of the _RWSTD_SPECIALIZED_CLASS macro while others assume explicit specialization is supported. I suspect we might as well assume it is and do away with the macro. Ditto for _TYPENAME. Martin Travis Vitek wrote: > I've posted what I've got for the current type_traits implementation to > STDCXX-916. I would have just mailed the file to the list directly, but > it is pretty big. > > http://issues.apache.org/jira/browse/STDCXX-916 > > The tests do compile and run on VC8. There are still a few failures. I'm > in the process of porting this to linux/gcc4.3 and I'm expecting the > results to be a bit better there because all of the necessary compiler > support is available. > > Please review the code and provide feedback. It would be most helpful if > any comments are pasted along with the block of code in question. > > Also, please don't focus on formatting to much. I know that I have a few > lines that run over 76 characters wide and that I've left out some > spaces after commas and before open parens. I'll deal with that stuff on > my own. > > Note that some of the tests have type names that end in underscores. > I'll be changing these to end in _t. It makes things more readable. > > Travis