220 37210 <p7iu9q$c8r$1@blaine.gmane.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Larry Evans <cppljevans@suddenlink.net>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: General purpose utilities for template
 metaprogramming and type manipulation
Date: Mon, 5 Mar 2018 02:16:57 -0600
Lines: 38
Approved: news@gmane.org
Message-ID: <p7iu9q$c8r$1@blaine.gmane.org>
References: <e3415a75-7e20-48dd-9e24-0e4681f46e53@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format=flowed
X-Trace: blaine.gmane.org 1520237721 27130 195.159.176.226 (5 Mar 2018 08:15:21 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 5 Mar 2018 08:15:21 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.6.0
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDAYTI72VMGRBAX26PKAKGQEGXA3Y6I@isocpp.org Mon Mar 05 09:15:17 2018
Return-path: <std-proposals+bncBDAYTI72VMGRBAX26PKAKGQEGXA3Y6I@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-lf0-f72.google.com ([209.85.215.72])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDAYTI72VMGRBAX26PKAKGQEGXA3Y6I@isocpp.org>)
	id 1eslGu-0004Ut-Up
	for gclcip-std-proposals@m.gmane.org; Mon, 05 Mar 2018 09:15:01 +0100
Original-Received: by mail-lf0-f72.google.com with SMTP id l14sf4937108lfl.20
        for <gclcip-std-proposals@m.gmane.org>; Mon, 05 Mar 2018 00:17:08 -0800 (PST)
ARC-Seal: i=2; a=rsa-sha256; t=1520237827; cv=pass;
        d=google.com; s=arc-20160816;
        b=iZi9nfwLAlrzoHSIiOQpx75/ho2Ayf69KigP6LZv8Y84y22A5cN7IOeXsT10DdFri2
         s91mqknvO8I8+DCw83AYN3t4rjkT5ErXI9LerJYByv3M87kk4fAlNXPq93EfBcUTE5Re
         zgb4cs1VMACZxRQlLOxsRzgQ8TKeyEzu6R4SeHAnCWMp19tXHXAbw6PGrDTbur5e5uOt
         LkaAUxgXiwzqlEFd4JTpco/0BJ1ESk2s29F/4vInKMy1yZWmZ44pOjYb5qCrUrU5WcDF
         mTnanQC3NtOhhwbS2fkw3eL/eTHZe9eIB0JW53QbJvz6W/ys8J2/WmYZfGPFpDkXur5A
         +Biw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
         :list-id:mailing-list:precedence:reply-to:content-language
         :in-reply-to:user-agent:mime-version:references:message-id:lines
         :date:subject:from:to:arc-authentication-results
         :arc-message-signature:dkim-signature:arc-authentication-results;
        bh=WxfgWJrhYykc03e+RFH3UHrU9lTCpkkdAQnxZuQZQIg=;
        b=CI9BaTswGWTXymMf8EJ6SjP/NseTtxRPkOR/QwwI8woUm/RBr53OnT4zjVb2pBPxZy
         gY7q46A2AWA4nMjqOMdAOZNCQqkpyltuUY7MfZnGOeClyGkYkK0G3PIBVO+AmxNINpHm
         KWWbzyEjLseYeEGOf5MYWhQR+iXve/I8hmjjEQGn25NpHDrEjixy6Fl5cvs8H3H3Cju1
         +H0XYg46183IpnEjueZWLdDdH4UVC95+uHQP7k4kjL6ye26S5YRBsopqNCPm4djr2mNJ
         NO6NhtRZ9fQx2DMCB9jaqrNt0GPz0ProP0JWBLJQ08xIxinCAKqG/JT4oDg8EoReo6YQ
         3T2A 
ARC-Authentication-Results: i=2; mx.google.com;
       spf=neutral (google.com: 195.159.176.226 is neither permitted nor denied by best guess record for domain of gclcip-std-proposals@m.gmane.org) smtp.mailfrom=gclcip-std-proposals@m.gmane.org
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=to:from:subject:date:lines:message-id:references:mime-version
         :user-agent:in-reply-to:content-language:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=WxfgWJrhYykc03e+RFH3UHrU9lTCpkkdAQnxZuQZQIg=;
        b=LeHGCsBL/HelZULWGloz72nc2Ww7WtgPn9ccjgFrfhhtonBcagB2/rVOoE16zw8qes
         UCoDSl+PYEsYUVzFFK7TPo18NmjAdhFC+WXlYGnwCTMXLyRI6ByYNYJhqaVFiTncdem7
         rejkDdH3jHPszBL+a8B1y9R/j4ESl8ioKNYMPoyfRpsVmZom849CCrvqaFyYpi09ihNI
         a9vUmDU1YeUyH1swMj2RhRYKEAQN6oP+F/qSFaHIf+BmX9S+UIJ2RSe/4tQ0jnNgiPkm
         9IzQdssW7wGnF8pcSC8g91u+n8ZL3nnyHKLc8HIt3CK+k2FCsum/VuR7gOLUMvCxuW1P
         /Khw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:to:from:subject:date:lines:message-id:references
         :mime-version:user-agent:in-reply-to:content-language
         :x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post
         :list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=WxfgWJrhYykc03e+RFH3UHrU9lTCpkkdAQnxZuQZQIg=;
        b=hAJjh3ItfIlowHIrcqPTLWUCoh0QlyzuRUJDTu9wGWREtdir1RfcUEquj4Pmb4Nr/k
         6HncIsFNZJTXqLIl/3IN+QboOslwYEb2emqRPGMO74dcJnKcHzwBXffIDbK7cw5OWijQ
         BuQa9kFNeDn9NXGgLAqvO13qbnaKRUoTsnz/QZrNHkYxdlIcCOzdSC2GIubetclwZhKu
         47TaBTZnEx3i/8uU+QQ6me7VCYvJhnXrmPvm/n54iYQDbcDLGUV/4PiRBh+x4IY8SHrG
         0LOInzOgCvOI4zw4BFK1U3+EtfBaG23ZdLjOzV9aBmxrmZqdM8PqP3fS0peyYpz0uqbx
     
X-Gm-Message-State: APf1xPB3G+zkrFjOXwDb2huM6VyFs/OzuH/d4x/V0WF+6Z0O2uRI2eRG
	W+pfQjz7oDGex3cACR2rIJc=
X-Google-Smtp-Source: AG47ELtE7czlWZYYf4Oa8WjgOOdg8lyC6RRGU5T4edcVsPF8wtiqsz8mTmVLN6x10gkqB/9qrhXB4g==
X-Received: by 10.46.89.91 with SMTP id n88mr887168ljb.35.1520237827770;
        Mon, 05 Mar 2018 00:17:07 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.25.72.82 with SMTP id v79ls1592982lfa.11.gmail; Mon, 05 Mar
 2018 00:17:05 -0800 (PST)
X-Received: by 10.25.19.226 with SMTP id 95mr9705670lft.57.1520237825839;
        Mon, 05 Mar 2018 00:17:05 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1520237825; cv=none;
        d=google.com; s=arc-20160816;
        b=LNeXVaRojasE7yIwjx9f5wCD1CuN+fpOvNqeCCQ/R4HdANr+TjDLq3+5maZ7DkW819
         SXDqFDOLMyIbJLDgqFbjbaF+vJUoQUxN+TYsiH3O20cP6v//3CUECUsaWF0IW401Ml/i
         9Jn62XP6b2/aQ06cZ//YnI/yB9xDazN8jEByyod1RMzQSv8Am9wxvRHjVCTIkct+Jj2H
         7R0UsthqXC2UMg2gxsVW1NZfrbLEHg4dSqC044/96VBtRaj9tzDE9j1/jguELYmkCjNU
         GV6SByWpTrb1JLfh70mAyZj9BT0PI45DnUWITQGQOUT3K8wsFucX7viLKXLQIvFbMY87
         0tlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=content-language:in-reply-to:user-agent:content-transfer-encoding
         :mime-version:references:message-id:lines:date:subject:from:to
         :arc-authentication-results;
        bh=P1JsU6kOPLAzRgghI9b0te1mlAVR2EMEE9dUPH++Vok=;
        b=hFxebzRilpw4hqkJXFWxOIPGbZPC7IeLC3SBhgenQ90jK6gXiQI0zqS2m6Bd5U1mi/
         OLtee4nEQOK9PFe/RhVLIsOMTo+gZtK07VJedfhy4cLHOBOYyTCzykbtOEvR1kB0RUra
         CkHY1Y/bB/LGUVEVFopsmeFTzVX97gm5lVEvdAeQIUrvpwC8LebMun4NgJU8V7ihHJlD
         8hV1sviMINoMWGlRiwkOJvRqBKvSZ3sHE3/3nlVhYpX5ByUYfu2w6VxoVdJVtIL03YUQ
         i6W6o5hNr0DCexBbFSXrFdRVSADRU2kQMm4LrOrEF0Ybego0w8zQiocVpM5dQVEzBeHp
         incg==
ARC-Authentication-Results: i=1; mx.google.com;
       spf=neutral (google.com: 195.159.176.226 is neither permitted nor denied by best guess record for domain of gclcip-std-proposals@m.gmane.org) smtp.mailfrom=gclcip-std-proposals@m.gmane.org
Original-Received: from blaine.gmane.org ([195.159.176.226])
        by mx.google.com with ESMTPS id i17si4511422lfj.60.2018.03.05.00.17.05
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 05 Mar 2018 00:17:05 -0800 (PST)
Received-SPF: neutral (google.com: 195.159.176.226 is neither permitted nor denied by best guess record for domain of gclcip-std-proposals@m.gmane.org) client-ip=195.159.176.226;
Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2)
	(envelope-from <gclcip-std-proposals@m.gmane.org>)
	id 1eslGr-000414-Fx
	for std-proposals@isocpp.org; Mon, 05 Mar 2018 09:14:57 +0100
X-Injected-Via-Gmane: http://gmane.org/
Original-Lines: 31
Original-X-Complaints-To: usenet@blaine.gmane.org
In-Reply-To: <e3415a75-7e20-48dd-9e24-0e4681f46e53@isocpp.org>
Content-Language: en-US
X-Original-Sender: cppljevans@suddenlink.net
X-Original-Authentication-Results: mx.google.com;       spf=neutral
 (google.com: 195.159.176.226 is neither permitted nor denied by best guess
 record for domain of gclcip-std-proposals@m.gmane.org) smtp.mailfrom=gclcip-std-proposals@m.gmane.org
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:37210
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/37210>

On 03/04/2018 12:55 AM, Vincent Reverdy wrote:
> Hey,
> 
> I was starting to think about putting together a proposal to add minor
> helper classes to either type_traits/utility/tuple to help with some of the
> operations done again and again when doing template metaprogramming.
> Here is a list of a few I can think of, but I would have liked to hear
> other suggestions. Names are just indicative, and bikeshedding would happen
> for all of these types.
> 
> 
>     - *std::blank*, defined as an empty struct
>     struct blank{};
or:
  using blank=std::tuple<>;
another name is unit:
  https://en.wikipedia.org/wiki/Unit_type
>     - *std::pack*, to hold a parameter pack of type
>     template <class... T> struct pack{};
>     - *std::convertible*, a type convertible to anything
>     struct convertible{template <class T> constexpr operator T() const
>     noexcept;};
>     - *std::copy_qualifiers*, a type traits copying ref and cv qualifiers
>     from one type to another
>     template <class From, class To> struct copy_qualifiers {using type = /*
>     cv-ref qualfiers of From applied to To*/;};
>     
> Other suggestions?
> 
https://github.com/cppljevans/variadic_templates/blob/master/boost/mpl/while.hpp
https://github.com/cppljevans/variadic_templates/blob/master/boost/mpl/if_recur.hpp

-- 
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/p7iu9q%24c8r%241%40blaine.gmane.org.

.
