220 7750 <49883229-58c3-4c26-bbc8-492ebd7e93dd@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: Daryle Walker <darylew@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: 2 Type-Traits Proposals: Standard Transformations and
 More Array Transformations
Date: Thu, 14 Nov 2013 03:52:01 -0800 (PST)
Lines: 94
Approved: news@gmane.org
Message-ID: <49883229-58c3-4c26-bbc8-492ebd7e93dd@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_218_9231271.1384429921188"
X-Trace: ger.gmane.org 1384429920 1981 80.91.229.3 (14 Nov 2013 11:52:00 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Thu, 14 Nov 2013 11:52:00 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDS6X4FNQMPBBYPSSKKAKGQELZYSPDA@isocpp.org Thu Nov 14 12:52:06 2013
Return-path: <std-proposals+bncBDS6X4FNQMPBBYPSSKKAKGQELZYSPDA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pd0-f200.google.com ([209.85.192.200])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDS6X4FNQMPBBYPSSKKAKGQELZYSPDA@isocpp.org>)
	id 1VgvSt-00081v-Fx
	for gclcip-std-proposals@m.gmane.org; Thu, 14 Nov 2013 12:52:03 +0100
Original-Received: by mail-pd0-f200.google.com with SMTP id v10sf3459811pde.7
        for <gclcip-std-proposals@m.gmane.org>; Thu, 14 Nov 2013 03:52:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe:content-type;
        bh=k7piR1SKPDQJadA+sC0MHhKugPvg/2fdbKb5AZ+fTfA=;
        b=kEvUxsyTqAkxx34TOGELSGD1aGBJKJgH4BOEF2CHvPpCA+KvrrorUt8F7+pmmOaN7a
         j1LfHnRe8B890O2p8X7HKCxMGu7B4Dq1Cko93AXF8/hoW+KY1Uo3d5hn5ToA3Vn++4fr
         UTU5A7TEEJSoY4czSFrJm3B/z1cL8cllBz9KeGv/cte8NItcEHh+NxjdhlrnDsUdTU/X
         PDan4dH4gdx1Gqpr+9E3OEl0vSQhAOszn1B0W6K8t6gzJSqu3pQgrg0ruU7SSIVBqmSJ
         aZEmrwWx10aFQ5CmJk5hctmkjaVEN7OJ4okZk3sKHqnB6J9jk0aqfe4dIAz4j6yRWvxu
         g/FA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:date:from:to:message-id:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe
         :content-type;
        bh=k7piR1SKPDQJadA+sC0MHhKugPvg/2fdbKb5AZ+fTfA=;
        b=eod4COcu+iGYArEGF5xi7TwLB9E+6Jh3WmU1vjUJvfIo5WV0GUOXl2LUGVCo87+FiC
         a8gwUQ7EZesKKlSR7tomkWn1tF3+Wlgo7Qienv8WlYYOutxYRzZqQftkOV/kO0mcEyod
         8/xqaUEQGNZRZyB3WG1rYXuVVAZIaVnst2bmZK81b1alZhdsztCx4yRbQioOqnNvDgRX
         5rJpxUAogZfPLzk69m91CZBFBw/X2I/SpjT+Fxh2R2u8aZWERqFJNkyYU4Fu1floqo+q
         CVPtjKJ8+Na7bPm+Qna9hHMsgTBSfxP8x59gIJeTV36WU+5fq3zCQuxWkKmT5beqPV9d
         R3Kw==
X-Gm-Message-State: ALoCoQmVk19q+sYtRbfylFH5nDK0Cz9AHgJf8B4WBvvZseXDjow4t8bxwniBMw1/hQ7p1vL0Hspd
X-Received: by 10.66.160.168 with SMTP id xl8mr414866pab.14.1384429922300;
        Thu, 14 Nov 2013 03:52:02 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.182.72.196 with SMTP id f4ls677599obv.64.gmail; Thu, 14 Nov
 2013 03:52:01 -0800 (PST)
X-Received: by 10.182.61.11 with SMTP id l11mr6334obr.5.1384429921733;
        Thu, 14 Nov 2013 03:52:01 -0800 (PST)
X-Original-Sender: darylew@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:7750
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/7750>

------=_Part_218_9231271.1384429921188
Content-Type: text/plain; charset=ISO-8859-1

I uploaded two proposals the deal with adding more type-traits.

The first one deals with type-translations that are described in the 
Standard<http://htmlpreview.github.io/?https://raw.github.com/CTMacUser/multiarray-iso-proposal/master/std-xform-proposal.html>. 
There are several places in the Standard that map some type to another, but 
there isn't a corresponding type-trait. Without said trait, you have to 
read the Standard and create a type-trait class manually. Manual creation 
isn't always easy for some of these, especially when implementation-defined 
behavior is allowed.

An example is that all the built-in character types have to shadow another 
integer type. The char16_t and char32_t types have their underlying type 
spelled out. For char, you have two guesses. Finding the type wchar_tshadows isn't as slam-dunk trivial.

Another example is function argument passing. Not counting references, an 
argument gets standard l-to-r-value, array-to-pointer, and 
function-to-pointer conversions applied to it. Those are covered by 
std::decay. Promotions may also be applied, but there is no type-trait for 
that.

So far, I have two new transformation type-traits, a change to an existing 
one (adding the built-in character types to std::underlying_type), plus a 
test type-trait. If you know of other similar transformations in the 
Standard, let me know so I can add them.

The second proposal does more array extent changing<http://htmlpreview.github.io/?https://raw.github.com/CTMacUser/multiarray-iso-proposal/master/array-traits-proposal.html>. 
One type-traits removes a user-selectable number of extents from an array 
type. (The current Standard has type-traits that do either one or all 
extents.) The other type-trait adds extents to a given type.

Daryle W.

-- 

--- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_218_9231271.1384429921188
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I uploaded two proposals the deal with adding more type-tr=
aits.<br><br>The first one deals with <a href=3D"http://htmlpreview.github.=
io/?https://raw.github.com/CTMacUser/multiarray-iso-proposal/master/std-xfo=
rm-proposal.html">type-translations that are described in the Standard</a>.=
 There are several places in the Standard that map some type to another, bu=
t there isn't a corresponding type-trait. Without said trait, you have to r=
ead the Standard and create a type-trait class manually. Manual creation is=
n't always easy for some of these, especially when implementation-defined b=
ehavior is allowed.<br><br>An example is that all the built-in character ty=
pes have to shadow another integer type. The <span style=3D"font-family: co=
urier new,monospace;">char16_t </span>and <span style=3D"font-family: couri=
er new,monospace;">char32_t</span> types have their underlying type spelled=
 out. For <span style=3D"font-family: courier new,monospace;">char</span>, =
you have two guesses. Finding the type <span style=3D"font-family: courier =
new,monospace;">wchar_t</span> shadows isn't as slam-dunk trivial.<br><br>A=
nother example is function argument passing. Not counting references, an ar=
gument gets standard l-to-r-value, array-to-pointer, and function-to-pointe=
r conversions applied to it. Those are covered by <span style=3D"font-famil=
y: courier new,monospace;">std::decay</span>. Promotions may also be applie=
d, but there is no type-trait for that.<br><br>So far, I have two new trans=
formation type-traits, a change to an existing one (adding the built-in cha=
racter types to <span style=3D"font-family: courier new,monospace;">std::un=
derlying_type</span>), plus a test type-trait. If you know of other similar=
 transformations in the Standard, let me know so I can add them.<br><br>The=
 second proposal does <a href=3D"http://htmlpreview.github.io/?https://raw.=
github.com/CTMacUser/multiarray-iso-proposal/master/array-traits-proposal.h=
tml">more array extent changing</a>. One type-traits removes a user-selecta=
ble number of extents from an array type. (The current Standard has type-tr=
aits that do either one or all extents.) The other type-trait adds extents =
to a given type.<br><br>Daryle W.<br><br></div>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_218_9231271.1384429921188--

.
