220 38455 <48f336e3-146b-4317-8a60-1a3acc16af4b@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Nicol Bolas <jmckesson@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Concepts fragmentation problem
Date: Sat, 2 Jun 2018 18:59:34 -0700 (PDT)
Lines: 76
Approved: news@gmane.org
Message-ID: <48f336e3-146b-4317-8a60-1a3acc16af4b@isocpp.org>
References: <f686b7c7-83c4-4779-9f91-316bbe3bab4b@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_19391_1506462426.1527991174651"
X-Trace: blaine.gmane.org 1527991051 15627 195.159.176.226 (3 Jun 2018 01:57:31 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sun, 3 Jun 2018 01:57:31 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCEKFTV6ZUMBBB4XZXMAKGQE2EMRHII@isocpp.org Sun Jun 03 03:57:26 2018
Return-path: <std-proposals+bncBCEKFTV6ZUMBBB4XZXMAKGQE2EMRHII@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-yb0-f200.google.com ([209.85.213.200])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCEKFTV6ZUMBBB4XZXMAKGQE2EMRHII@isocpp.org>)
	id 1fPIGr-0003wQ-O4
	for gclcip-std-proposals@m.gmane.org; Sun, 03 Jun 2018 03:57:25 +0200
Original-Received: by mail-yb0-f200.google.com with SMTP id h29-v6sf1326350ybj.22
        for <gclcip-std-proposals@m.gmane.org>; Sat, 02 Jun 2018 18:59:36 -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
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=mynFxL12SQF4lSRhsJTtRSX2OewF4sD0aLaXOzgVxS4=;
        b=X9QRxAfZfxry1yluyYSpLIJqy35CryHU2YMK1zJYx0om7OYyqrpEQuB1ImfDSbKqGj
         /BT5OqTQT+tizC61+1zjrsIkT5uUk96Rbqh2bnUYuCfXP/TYC1bnHGWG9uumOTeuu7hx
         STYlKfJ7Ap3UfIJwjFJ/56O7qQUT9Q3K/2dHnkyRAyvwhCG5nHLnumvVenAzZMZlImF/
         MN50+5Efpk92Z+Mv1w5wZt/r3FBYmr3GyYnRaLXPXMW6zdWtvqW7bCnYTMfku30EJLma
         JURjgek8XzfcgSq/1HiNh42YCc2rHBW0WL/QVvUmAx+2aYQ9ZF6uDh0eNulQbxa7h+J/
         eR5Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=mynFxL12SQF4lSRhsJTtRSX2OewF4sD0aLaXOzgVxS4=;
        b=s3p3N1jVnAYXgnOgUF4ZPnhYJ+7mMut8XAifejscPXDfTgL4lj/oJ1CD1NgmXYoKcs
         WSMm9/wBtxKt5vC2UmdndFlarp4gYqmQQt/AYWZE/CAaigYSUiDE6w3YD8VjYvV3fHnu
         AGlHyF87eDjzYr4TrKMi4OIiRPtk1g0K2/BNe3kYwy8rFXCgDh9g3uyKwoK0vQavHn0g
         P0yjj7mXc2Xqxx+pheXoDAGIi0SQQ8D5vSN1m3p0WmZKjac5V5l15Vkz35lx0GwVZo1Z
         kTOYb5ex8nDWTC9C9AMeasVjS1g4kx+uvY44FlwHcHyzKGUHrVoKcD3JzqeSB7bGfgRc
         Hztg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        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=mynFxL12SQF4lSRhsJTtRSX2OewF4sD0aLaXOzgVxS4=;
        b=YSZ8hQjINi/Sdq/29zAhCycuk9U8ZLaqgzlyb/S0SopXUPuyK4H9BslwNoVP+XR8J+
         pIRQikTTx1G29R93qPN07eoMhRLEZKvQGI0+6Te1Iuu5FmOoO7CQ+iieXNsluhxQpT4/
         y0heWDlJ9mhb6xWe3iTYAjevRHC+9ioMAizVaGBGAMloLqFVYX5PjcVCTj3ofV2RDZL7
         Q4lVk2iSHq+l2GqWoHXIxCGTH2C6YwDrjLQgHHD94U4SRXW9uo/GHA6AGPaQ3lWbMpx7
         dc+ksChq2A0x9pD/bxO49XOpicHh3R3Etp4aRSmy3NErI5ZZMxwQ84KhcqSHJ+VKF8LD
         0nfA==
X-Gm-Message-State: APt69E2rnAOfsfEMFvKSdM7Gzg0j0CC1bLvpzTt2eAjoyuiYZLEbRc2F
	GLD7+zT2oAnKNG7M+kWkp6CO6Q==
X-Google-Smtp-Source: ADUXVKKK+Y+tngTdytYcaPf3p0tkgCxTL2Oxs+pvb3kMxq1J1nfX5iND/OY7QEZ/rQZW40i2tMis+A==
X-Received: by 2002:a0d:e88f:: with SMTP id r137-v6mr502364ywe.160.1527991176293;
        Sat, 02 Jun 2018 18:59:36 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:a25:b90e:: with SMTP id x14-v6ls9351090ybj.14.gmail; Sat, 02
 Jun 2018 18:59:35 -0700 (PDT)
X-Received: by 2002:a25:d68d:: with SMTP id n135-v6mr687301ybg.6.1527991175217;
        Sat, 02 Jun 2018 18:59:35 -0700 (PDT)
In-Reply-To: <f686b7c7-83c4-4779-9f91-316bbe3bab4b@isocpp.org>
X-Original-Sender: jmckesson@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:38455
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/38455>

------=_Part_19391_1506462426.1527991174651
Content-Type: multipart/alternative; 
	boundary="----=_Part_19392_61113823.1527991174651"

------=_Part_19392_61113823.1527991174651
Content-Type: text/plain; charset="UTF-8"

On Saturday, June 2, 2018 at 7:57:30 PM UTC-4, Omer Rosler wrote:
>
> The problem with second approach the user now has to remember two versions 
> of the same concepts: one to use and one to implement.
>

How many times have you used an iterator? I bet it's several orders of 
magnitude more often than you've *written one*.

Yes, your library has two concepts. But they aren't two versions of the 
*same* concept. There's the Iterator concept, and there's the 
ThingThatThisToolTurnsIntoAnIterator concept. Those aren't the same thing; 
indeed, more likely than not, they are quite dissimilar. They have 
different interfaces and different purposes.

Users don't have to remember the ThingThatThisToolTurnsIntoAnIterator 
concept, because they simply don't use it very often. When they need to use 
it, they'll look up what it does and how it works. What they're going to 
*remember* is Iterator, because that's what they're using most of the time.

-- 
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/48f336e3-146b-4317-8a60-1a3acc16af4b%40isocpp.org.

------=_Part_19392_61113823.1527991174651
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Saturday, June 2, 2018 at 7:57:30 PM UTC-4, Omer Rosler=
 wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.=
8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><=
div><div>The problem with second approach the user now has to remember two =
versions of the same concepts: one to use and one to implement.</div></div>=
</div></div></blockquote><div><br></div><div>How many times have you used a=
n iterator? I bet it&#39;s several orders of magnitude more often than you&=
#39;ve <i>written one</i>.</div><div><br></div><div>Yes, your library has t=
wo concepts. But they aren&#39;t two versions of the <i>same</i> concept. T=
here&#39;s the Iterator concept, and there&#39;s the ThingThatThisToolTurns=
IntoAnIterator concept. Those aren&#39;t the same thing; indeed, more likel=
y than not, they are quite dissimilar. They have different interfaces and d=
ifferent purposes.</div><div><br></div><div>Users don&#39;t have to remembe=
r the ThingThatThisToolTurnsIntoAnIterator concept, because they simply don=
&#39;t use it very often. When they need to use it, they&#39;ll look up wha=
t it does and how it works. What they&#39;re going to <i>remember</i> is It=
erator, because that&#39;s what they&#39;re using most of the time.</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/48f336e3-146b-4317-8a60-1a3acc16af4b%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/48f336e3-146b-4317-8a60-1a3acc16af4b=
%40isocpp.org</a>.<br />

------=_Part_19392_61113823.1527991174651--

------=_Part_19391_1506462426.1527991174651--

.
