Return-Path: Delivered-To: apmail-stdcxx-dev-archive@www.apache.org Received: (qmail 10168 invoked from network); 22 Jun 2008 23:48:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jun 2008 23:48:36 -0000 Received: (qmail 98612 invoked by uid 500); 22 Jun 2008 23:48:38 -0000 Delivered-To: apmail-stdcxx-dev-archive@stdcxx.apache.org Received: (qmail 98591 invoked by uid 500); 22 Jun 2008 23:48:38 -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 98580 invoked by uid 99); 22 Jun 2008 23:48:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Jun 2008 16:48:38 -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.184.230 as permitted sender) Received: from [64.233.184.230] (HELO wr-out-0506.google.com) (64.233.184.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Jun 2008 23:47:45 +0000 Received: by wr-out-0506.google.com with SMTP id c8so1026729wra.27 for ; Sun, 22 Jun 2008 16:48:04 -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=cgZhVkmtUGUfAyVOTbFTfQHxqA+pfNGuKFsNNp/Yn6c=; b=q+UhDyfD1/s35WnfCJkpPlcMVDUmSAXWssLcvIt7GyoI5EnvMbVz0D2xeZG+Fm4Vlj X6u1lVMwA3LfVyCcdTGyjsr6zl3l+mkQyTFjSfa1wJtTkBOamjtTqliQ17f+LAVM473O WLU7qGTp0c23qhzTiIrVvodczoN9LsyKOtq5E= 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=X0xls039UwFxk8crdxXUDk7oP9hx1k6BD1xneOUkqvSxLSpAiROWLFtw3DYIIHX4Lk lF1fDRgrxkVIVBZI7Sk6PNSD8hxjgq28MlN1SsFH2R/IAFBQfAhBmTITL+9URCE6ICjX VG8RUB03prkyHrNE/0xcagAC467smQupfFWFo= Received: by 10.90.86.9 with SMTP id j9mr9004209agb.38.1214178484260; Sun, 22 Jun 2008 16:48:04 -0700 (PDT) Received: from localhost.localdomain ( [71.229.200.170]) by mx.google.com with ESMTPS id p77sm9906982pyb.12.2008.06.22.16.48.02 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 22 Jun 2008 16:48:03 -0700 (PDT) Message-ID: <485EE4B1.1040101@roguewave.com> Date: Sun, 22 Jun 2008 17:48:01 -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: svn commit: r670099 - in /stdcxx/branches/4.3.x/include: rw/_ref_wrap.h tuple References: <20080621002540.1121523889F7@eris.apache.org> 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 Travis Vitek wrote: > > Brad, > > I just noticed that you aren't applying SVN properties to all of the files that you are adding. New headers and source should get the svn:eol-style and svn:keywords properties set. Ideally this would be done before you submit the file for the first time, but you can add the properties later. > > I believe that the command sequence on non-windows systems is > > $ svn propset svn:eol-style native > $ svn propset svn:keywords Id Or enable auto-props in your $HOME/.subversion/config file and set these there (via: svn:eol-style=native;svn:keywords=Id). Here are some more details: http://svnbook.red-bean.com/en/1.4/svn.advanced.confarea.html#svn.advanced.confarea.opts.config > > Travis > > -----Original Message----- > From: elemings@apache.org [mailto:elemings@apache.org] > Sent: Fri 6/20/2008 5:25 PM > To: commits@stdcxx.apache.org > Subject: svn commit: r670099 - in /stdcxx/branches/4.3.x/include: rw/_ref_wrap.h tuple > > Author: elemings > Date: Fri Jun 20 17:25:39 2008 > New Revision: 670099 > > URL: http://svn.apache.org/viewvc?rev=670099&view=rev > Log: > 2008-06-21 Eric Lemings > > STDCXX-958 > * include/rw/_ref_wrap.h: Add internal header for reference > wrappers. (Currently just an empty class template.) > * include/tuple: Add helpers for deducing return type of > make_tuple() function. > (make_tuple): Implemented and documented. > > > Added: > stdcxx/branches/4.3.x/include/rw/_ref_wrap.h > Modified: > stdcxx/branches/4.3.x/include/tuple > > Added: stdcxx/branches/4.3.x/include/rw/_ref_wrap.h > URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_ref_wrap.h?rev=670099&view=auto > ============================================================================== > --- stdcxx/branches/4.3.x/include/rw/_ref_wrap.h (added) > +++ stdcxx/branches/4.3.x/include/rw/_ref_wrap.h Fri Jun 20 17:25:39 2008 > @@ -0,0 +1,63 @@ > +// -*- C++ -*- > +/*************************************************************************** > + * > + * This is an internal header file used to implement the C++ Standard > + * Library. It should never be #included directly by a program. > + * > + * $Id$ > + * > + *************************************************************************** > + * > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed > + * with this work for additional information regarding copyright > + * ownership. The ASF licenses this file to you under the Apache > + * License, Version 2.0 (the "License"); you may not use this file > + * except in compliance with the License. You may obtain a copy of > + * the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > + * implied. See the License for the specific language governing > + * permissions and limitations under the License. > + * > + * Copyright 2008 Rogue Wave Software. > + * > + **************************************************************************/ > + > +#ifndef _RWSTD_RW_REF_WRAP_INCLUDED > +# define _RWSTD_RW_REF_WRAP_INCLUDED > + > +# include > + > +# if !defined _RWSTD_NO_EXT_CXX_0X > + > + > +_RWSTD_NAMESPACE (__rw) { > + > + > +/** > + * @class std::reference_wrapper > + * > + * Encapsulates a reference as an object. This class template allows > + * references to be manipulated and behave as an ordinary object. > + * > + * @tparam Type A non-reference type. > + */ > + > +template > +class __rw_ref_wrap > +{ > + > +}; > + > + > +} // namespace __rw > + > + > +# endif // !defined _RWSTD_NO_EXT_CXX_0X > + > +#endif // _RWSTD_RW_REF_WRAP_INCLUDED > > Modified: stdcxx/branches/4.3.x/include/tuple > URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/tuple?rev=670099&r1=670098&r2=670099&view=diff > ============================================================================== > --- stdcxx/branches/4.3.x/include/tuple (original) > +++ stdcxx/branches/4.3.x/include/tuple Fri Jun 20 17:25:39 2008 > @@ -36,9 +36,9 @@ > # error _RWSTD_NO_EXT_CXX_0X defined and C++0x header included > # endif // defined _RWSTD_NO_EXT_CXX_0X > > -# include // for __rw_add_const > -# include // for __rw_integral_constant > -# include // for __rw_add_lvalue_reference > +# include > + > +# include > > # include > # include > @@ -48,13 +48,37 @@ > > struct __rw_ignore { /* empty */ }; > > -/// Transforms _Type into a suitable make_tuple() return type. > template > -struct __rw_make_tuple { > - /// @todo Deduce correct return type. > +struct __rw_deduce_reference > +{ > typedef _Type type; > }; > > +template > +struct __rw_deduce_reference< __rw_ref_wrap<_Type> > > +{ > + typedef _Type& type; > +}; > + > +template > +struct __rw_deduce_reference< const __rw_ref_wrap<_Type> > > +{ > + typedef _Type& type; > +}; > + > +/** > + * @internal > + * Transform a tuple element type into a suitable make_tuple() return > + * type. > + * @tparam _Type A tuple element type. > + */ > +template > +class __rw_make_tuple > +{ > + typedef _TYPENAME _RWSTD_DECAY(_Type) _Decay; > + typedef _TYPENAME __rw_deduce_reference<_Decay>::type type; > +}; > + > } // namespace __rw > > > @@ -69,9 +93,24 @@ > > # if !defined _RWSTD_NO_RVALUE_REFERENCES > > +/** > + * @function make_tuple > + * > + * Create a new tuple from a list of element values. This function > + * constructs a new tuple from the corresponding element values by > + * utilizing move semantics. > + * > + * @tparam _Types The list of elements types in the tuple. > + * @param __values A corresponding list of element values. > + * @return A tuple object containing the given element values. > + */ > template > tuple<_TYPENAME _RW::__rw_make_tuple<_Types>::type...> > -make_tuple (_Types&&... __values); > +make_tuple (_Types&&... __values) > +{ > + typedef tuple<_TYPENAME _RW::__rw_make_tuple<_Types>::type...> _Tuple; > + return _Tuple (std::forward<_Types> (__values)...); > +} > > template > tuple<_TypesT..., _TypesU...> > > >