220 26114 <a8dba456-b892-4778-9728-05311d5fc261@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: =?UTF-8?Q?Germ=C3=A1n_Diago?= <germandiago@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: static_if, constraints, concepts, and definition checking
Date: Wed, 1 Jun 2016 02:18:25 -0700 (PDT)
Lines: 98
Approved: news@gmane.org
Message-ID: <a8dba456-b892-4778-9728-05311d5fc261@isocpp.org>
References: <f0b8f7da-28f0-43fb-9073-ceb2aa32a032@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_103_1393515859.1464772705211"
X-Trace: ger.gmane.org 1464772724 7129 80.91.229.3 (1 Jun 2016 09:18:44 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Wed, 1 Jun 2016 09:18:44 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDC2VXM4YYDRBYWQXK5AKGQEAF5CAFQ@isocpp.org Wed Jun 01 11:18:39 2016
Return-path: <std-proposals+bncBDC2VXM4YYDRBYWQXK5AKGQEAF5CAFQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-ob0-f200.google.com ([209.85.214.200])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDC2VXM4YYDRBYWQXK5AKGQEAF5CAFQ@isocpp.org>)
	id 1b82IP-0005Cc-Rv
	for gclcip-std-proposals@m.gmane.org; Wed, 01 Jun 2016 11:18:38 +0200
Original-Received: by mail-ob0-f200.google.com with SMTP id jt9sf8023746obc.2
        for <gclcip-std-proposals@m.gmane.org>; Wed, 01 Jun 2016 02:18:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=rkpi1arbHkXGxCLOHHOj33adybGCCRxhbKReYItXTqo=;
        b=Q7oeIICytUGeC1t+vCUH05VRVH45DpXo/aZ1FcpQKVSTW+munp5F9jGNRAuBlmwvjM
         r2c+4CNg6gjQw+/rBOPASZDD0ZChqUgVuAz7j1MwhqZzfQCNr/TgUS4xGbAkzasCJAma
         q9w057H68xEDrocvsiW9KVPMUmXAg/Fdy/7k3QeTp9daZYTxaXyyIAIG3CH3mpQtbsRd
         s7pmPyFoTaQcyzz/4RyAbQVzOO7QDJvADLK5T6EYWyN3EG6uRLql7IEiF5+jbiPqkCNe
         rB0HY36r5f0W4BINStGCMRWcbsl0cex7Ajinet6KBEn3oz9WEqs7Q6CaaN1XADNdRbHY
         uPJQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=rkpi1arbHkXGxCLOHHOj33adybGCCRxhbKReYItXTqo=;
        b=Ici2bztD8CrvjnC0Cg7zANfvPEiUti5EFEb3uz5zLbfcurPfyscIpA/QzLoSxx186s
         sIC1zRWBhH7MNn1nmeM92PwECgKUKDUK4Ae+9kxgyt6RhUOcZEwH9lqyGgRxUyXAqbG1
         bsL2EhoQDlghMocus+0tY63Kz8DWKgPlL22jvwPjtI1ICMrXXVH2ePNoAeBetOfmp3GE
         7UKpaQTgdvyJIJajXpE15e933yoo0K8g2eaylsTgeL0rpPFm8Lyk1rlMMmLErXPB4X65
         PmOHsiuLqV5lSCiSXoHTDr0RGrCR//qDOwBlicKTIPqDtYRxLVmAcZEIvh4fZ9M5t8HJ
         SnnQ==
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:in-reply-to:references
         :subject:mime-version:x-original-sender:reply-to:precedence
         :mailing-list:list-id:x-spam-checked-in-group:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe;
        bh=rkpi1arbHkXGxCLOHHOj33adybGCCRxhbKReYItXTqo=;
        b=k/hhu3ahCoToTvknkGkF+zWRWgpMlw/o27UeWcb9ZnwHMItoNtXW1vx7uVvMD2r+tU
         j6heHdha0Q3f7CV/tuc2p31VQ5uL5pTC4kgCq3zGV9bhQfXE4GZssUqXlBOO5wfWqitB
         2a3HAgqvOhBNZrFfFd0jslpKovJD/ieo2zbvQA+3WAWRximO6dmEzgurWno0uuXZfLCb
         MBTDOzoYgnBm074IBP8JtnusXL29wYhYsLoI82ESejrObVKaGr//gobWsc31McsjPAin
         q/vcSwu3oLnz2La9QAgaddnULsgJgYNzCE1N6sy5iFHYqO3gmS4qkDpSozC2Z/mL2P5/
         mubw==
X-Gm-Message-State: ALyK8tLXRN2cFdMCv1NPLkUzs6YGgn7ip3a9WZKcGBxfzjS6XyHMLbxDloRTkBkB7VBXNw==
X-Received: by 10.36.214.3 with SMTP id o3mr16109344itg.7.1464772706876;
        Wed, 01 Jun 2016 02:18:26 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.140.21.80 with SMTP id 74ls1964598qgk.3.gmail; Wed, 01 Jun
 2016 02:18:25 -0700 (PDT)
X-Received: by 10.140.28.182 with SMTP id 51mr1231963qgz.1.1464772705909;
        Wed, 01 Jun 2016 02:18:25 -0700 (PDT)
In-Reply-To: <f0b8f7da-28f0-43fb-9073-ceb2aa32a032@isocpp.org>
X-Original-Sender: germandiago@gmail.com
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:26114
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/26114>

------=_Part_103_1393515859.1464772705211
Content-Type: multipart/alternative; 
	boundary="----=_Part_104_342734633.1464772705211"

------=_Part_104_342734633.1464772705211
Content-Type: text/plain; charset=UTF-8



> There is a semantic difference between *Constraints* and *Concepts*.
>

Actually I think that Constraints and Concepts are the same thing dressed 
differently. The fact that something becomes a concept or not is the 
author's choice.

*| Concepts* are about something more than merely being `enable_if` without 
the crappy syntax. 

In which way is this different from a constraint? A Concept, in my view, is 
a constraint.

| I think the Concepts TS can provide both constraints and concepts. I can 
see two ways of doing it:


Why should we complicate things that far if they are essentially the same 
thing? I do not get your point about why they are different.

Another question I have is: do concepts enable any use case not enabled by 
constraints (concepts-lite) in general? 
Because type-checking everything is going very far on complicating things, 
but, is this anything that has real use cases? 
I say this from complete ignorance: can concepts do anything (full 
concepts) that constraints (or concepts lite) cannot do
besides full checking in a real-case scenario? Checking templates fully 
will also take compilation time, but not only that, it would complicate 
implementations.
FWIW I am quite happy with the D approach + Concepts Lite. I am not sure 
full concepts should ever be needed, or even if it is worth to make a 
distinction,
since I feel that distinction (correct me if I am wrong) is arbitrary.


-- 
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/a8dba456-b892-4778-9728-05311d5fc261%40isocpp.org.

------=_Part_104_342734633.1464772705211
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><blockquote class=3D"gmail_quote" style=3D"margin: 0;m=
argin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr">There is a semantic difference between <b>Constraints</b> and <b>C=
oncepts</b>.<br></div></blockquote><div dir=3D"ltr"><br>Actually I think th=
at Constraints and Concepts are the same thing dressed differently. The fac=
t that something becomes a concept or not is the author&#39;s choice.<br><b=
r><b>| Concepts</b> are about something more than merely being `enable_if` =
without the crappy syntax. <br><br>In which way is this different from a co=
nstraint? A Concept, in my view, is a constraint.<br><br>| I think the Conc=
epts TS can provide both constraints and concepts. I can see two ways of do=
ing it:<br><br><br>Why should we complicate things that far if they are ess=
entially the same thing? I do not get your point about why they are differe=
nt.<br><br>Another question I have is: do concepts enable any use case not =
enabled by constraints (concepts-lite) in general? <br>Because type-checkin=
g everything is going very far on complicating things, but, is this anythin=
g that has real use cases? <br>I say this from complete ignorance: can conc=
epts do anything (full concepts) that constraints (or concepts lite) cannot=
 do<br>besides full checking in a real-case scenario? Checking templates fu=
lly will also take compilation time, but not only that, it would complicate=
 implementations.<br>FWIW I am quite happy with the D approach + Concepts L=
ite. I am not sure full concepts should ever be needed, or even if it is wo=
rth to make a distinction,<br>since I feel that distinction (correct me if =
I am wrong) is arbitrary.<br><br><br></div></div>

<p></p>

-- <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 <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/a8dba456-b892-4778-9728-05311d5fc261%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/a8dba456-b892-4778-9728-05311d5fc261=
%40isocpp.org</a>.<br />

------=_Part_104_342734633.1464772705211--

------=_Part_103_1393515859.1464772705211--

.
