Return-Path: Delivered-To: apmail-stdcxx-dev-archive@www.apache.org Received: (qmail 68875 invoked from network); 21 Jun 2008 18:32:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Jun 2008 18:32:43 -0000 Received: (qmail 33070 invoked by uid 500); 21 Jun 2008 18:32:45 -0000 Delivered-To: apmail-stdcxx-dev-archive@stdcxx.apache.org Received: (qmail 33055 invoked by uid 500); 21 Jun 2008 18:32:44 -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 33044 invoked by uid 99); 21 Jun 2008 18:32:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 21 Jun 2008 11:32:44 -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: local policy) Received: from [208.30.140.160] (HELO moroha.roguewave.com) (208.30.140.160) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 21 Jun 2008 18:31:55 +0000 Received: from exchmail01.Blue.Roguewave.Com (exchmail01.blue.roguewave.com [10.22.129.22]) by moroha.roguewave.com (8.13.6/8.13.6) with ESMTP id m5LIUCMS012120 for ; Sat, 21 Jun 2008 18:30:13 GMT X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8D3CC.C6EA6307" Subject: RE: svn commit: r670099 - in /stdcxx/branches/4.3.x/include: rw/_ref_wrap.h tuple Date: Sat, 21 Jun 2008 12:29:44 -0600 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: svn commit: r670099 - in /stdcxx/branches/4.3.x/include: rw/_ref_wrap.h tuple Thread-Index: AcjTNXim/Ku7H/7wSi6nyjvgALgbEAAljjhr References: <20080621002540.1121523889F7@eris.apache.org> From: "Travis Vitek" To: X-Virus-Checked: Checked by ClamAV on apache.org ------_=_NextPart_001_01C8D3CC.C6EA6307 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 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 =20 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 =20 Author: elemings Date: Fri Jun 20 17:25:39 2008 New Revision: 670099 URL: http://svn.apache.org/viewvc?rev=3D670099&view=3Drev 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=3D670099&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- 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. + *=20 + = *************************************************************************= */ + +#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=3D67= 0099&r1=3D670098&r2=3D670099&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- 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 =20 -# include // for __rw_add_const -# include // for __rw_integral_constant -# include // for __rw_add_lvalue_reference +# include + +# include =20 # include # include @@ -48,13 +48,37 @@ =20 struct __rw_ignore { /* empty */ }; =20 -/// 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; }; =20 +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 =20 =20 @@ -69,9 +93,24 @@ =20 # if !defined _RWSTD_NO_RVALUE_REFERENCES =20 +/** + * @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)...); +} =20 template tuple<_TypesT..., _TypesU...> ------_=_NextPart_001_01C8D3CC.C6EA6307--